home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 41.zip / BS1 part 41 / LATEX macros.adf / AMSTeX / amstex.tex < prev    next >
Text File  |  1988-02-21  |  71KB  |  1,694 lines

  1. % AMS-TEX VERSION 1.1c
  2. % COPYRIGHT (C) 1985, 1987 BY AMERICAN MATHEMATICAL SOCIETY
  3. \catcode`\@=11
  4. \ifx\amstexloaded@\relax\catcode`\@=\active
  5.  \endinput\else\let\amstexloaded@\relax\fi
  6. \def\W@{\immediate\write\sixt@@n}
  7. \def\spaces@{\space\space\space\space\space}
  8. \def\spaces@@{\spaces@\spaces@\spaces@\spaces@\spaces@}
  9. \def\CR@{\W@{}\W@{\spaces@@ AmS-TeX - Version 1.1c}
  10. \W@{\spaces@@ ** As of 8 Jul 1987 **}\W@{}
  11. \W@{COPYRIGHT 1987 - AMERICAN MATHEMATICAL SOCIETY ("AMS") - ALL RIGHTS
  12.  RESERVED.}
  13. \W@{USE OF A COPY OF AmS-TeX CONSTITUTES AN AGREEMENT TO THE TERMS OF A LEASE}
  14. \W@{THEREOF FROM AMS TO THE LESSEE (i.e., THE ENTITY RECEIVING POSSESSION OF
  15.  AN}
  16. \W@{AUTHORIZED COPY OF AmS-TeX).  SUCH LEASE LIMITS USE TO NON-PROFIT,
  17.  IN-HOUSE}
  18. \W@{USES BY LESSEE.  ANY OTHER USE IS UNAUTHORIZED AND WILL RESULT IN
  19.  TERMINATION}
  20. \W@{OF SUCH LEASE ON NOTICE FROM AMS.}\W@{}
  21. \W@{PLEASE ADDRESS REQUESTS FOR COMMERCIAL OR ADDITIONAL RIGHTS TO}
  22. \W@{AMS, P.O. BOX 6248, PROVIDENCE, RI 02940, ATTN: EXECUTIVE DIRECTOR.}\W@{}}
  23. \CR@
  24. \everyjob{\CR@}
  25. \toksdef\toks@@=2
  26. \long\def\rightappend@#1\to#2{\toks@{\\{#1}}\toks@@
  27.  =\expandafter{#2}\xdef#2{\the\toks@@\the\toks@}}
  28. \newif\ifalloc@
  29. \def\showallocations{{\def\\{\immediate\write-1}\alloclist@}\alloc@true}
  30. \def\alloclist@{\empty}
  31. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  32.  \ch@ck#1#4#2\allocationnumber=\count1#1
  33.  \global#3#5=\allocationnumber
  34.  \edef\appendit@{\string#5=\string#2\the\allocationnumber}%
  35.  \expandafter\rightappend@\appendit@\to\alloclist@}
  36. \newcount\m@ne
  37. \m@ne-1
  38. \newlinechar=`\^^J
  39. \def\err@#1{\errmessage{AmS-TeX error: #1}}
  40. \newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J
  41. Maybe you should try asking a human?^^J
  42. An error might have occurred before I noticed any problems.^^J
  43. ``If all else fails, read the instructions.''}
  44. \def\Err@#1{\errhelp\defaulthelp@\errmessage{AmS-TeX error: #1}}
  45. \def\eat@#1{}
  46. \newif\ifin@
  47. \def\in@#1#2{\def\in@@##1#1##2##3\in@@{\ifx\in@##2\in@false\else\in@true\fi}%
  48.  \in@@#2#1\in@\in@@}
  49. \def\space@.{\futurelet\space@\relax}
  50. \space@. %
  51. \newhelp\athelp@
  52. {Only certain combinations beginning with @ make sense to me.^^J
  53. Perhaps you wanted \string\@\space for a printed @?^^J
  54. I've ignored the character or group after @.}
  55. \def\futureletnextat@{\futurelet\next\at@}
  56. {\catcode`\@=\active
  57. \lccode`\Z=`\@ \lccode`\I=`\I \lowercase
  58. {\gdef@{\expandafter\csname futureletnextatZ\endcsname}\expandafter
  59.  \gdef\csname atZ\endcsname
  60.  {\ifcat\noexpand\next a\def\next{\csname atZZ\endcsname}\else
  61.  \ifcat\noexpand\next0\def\next{\csname atZZ\endcsname}\else
  62.  \ifcat\noexpand\next\relax\def\next{\csname atZZZ\endcsname}\else
  63.  \def\next{\csname atZZZZ\endcsname}\fi\fi\fi\next}
  64. \expandafter\gdef\csname atZZ\endcsname#1{\expandafter
  65.  \ifx\csname #1Zat\endcsname\relax\def\next
  66.  {\errhelp\expandafter=\csname athelpZ\endcsname
  67.  \csname errZ\endcsname{Invalid use of \string@}}\else
  68.  \def\next{\csname #1Zat\endcsname}\fi\next}
  69. \expandafter\gdef\csname atZZZ\endcsname#1{\expandafter
  70.  \ifx\csname \string#1ZZat\endcsname\relax\def\next
  71.  {\errhelp\expandafter=\csname athelpZ\endcsname
  72.  \csname errZ\endcsname{Invalid use of \string@}}\else
  73.  \def\next{\csname \string#1ZZat\endcsname}\fi\next}
  74. \expandafter\gdef\csname atZZZZ\endcsname#1{\errhelp
  75.  \expandafter=\csname athelpZ\endcsname
  76.  \csname errZ\endcsname{Invalid use of \string@}}}}
  77. \def\atdef@#1{\expandafter\def\csname #1@at\endcsname}
  78. \def\atdef@@#1{\expandafter\def\csname \string#1@@at\endcsname}
  79. \newhelp\defahelp@{If you typed \string\define\space cs instead of
  80. \string\define\string\cs\space^^J
  81. I've substituted an inaccessible control sequence so that your^^J
  82. definition will be completed without mixing me up too badly.^^J
  83. If you typed \string\define{\string\cs} the inaccessible control sequence^^J
  84. was defined to be \string\cs, and the rest of your^^J
  85. definition appears as input.}
  86. \newhelp\defbhelp@{I've ignored your definition, because it might^^J
  87. conflict with other uses that are important to me.}
  88. \def\define{\futurelet\next\define@}
  89. \def\define@{\ifcat\noexpand\next\relax
  90.  \def\next@{\define@@}\else\errhelp\defahelp@
  91.  \err@{\string\define\space must be followed by a control
  92.  sequence}\def\next@{\def\garbage@}\fi\next@}
  93. \def\undefined@{}
  94. \def\preloaded@{}
  95. \def\define@@#1{\ifx#1\relax\errhelp\defbhelp@
  96.  \err@{\string#1\space is already defined}\def\next@{\def\garbage@}\else
  97.  \expandafter\ifx\csname\expandafter\eat@\string
  98.  #1@\endcsname\undefined@\errhelp\defbhelp@
  99.  \err@{\string#1\space can't be defined}\def\next@{\def\garbage@}\else
  100.  \expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax
  101.  \global\let#1\undefined\def\next@{\def#1}\else\errhelp\defbhelp@
  102.  \err@{\string#1\space is already defined}\def\next@{\def\garbage@}\fi
  103.  \fi\fi\next@}
  104. \let\redefine\def
  105. \def\predefine#1#2{\let#1#2}
  106. \def\pagewidth#1{\hsize#1\relax}
  107. \def\pageheight#1{\vsize#1\relax}
  108. \def\hcorrection#1{\advance\hoffset#1\relax}
  109. \def\vcorrection#1{\advance\voffset#1\relax}
  110. \def\tie{\unskip\nobreak\ }
  111. \let\graveaccent\`
  112. \let\acuteaccent\'
  113. \let\tildeaccent\~
  114. \let\hataccent\^
  115. \let\underscore\_
  116. \let\B\=
  117. \let\D\.
  118. \let\ic@\/
  119. \def\/{\unskip\ic@}
  120. \def\textfonti{\the\textfont\@ne}
  121. \def\t#1#2{{\edef\next{\the\font}\textfonti\accent"7F \next#1#2}}
  122. \def~{\unskip\nobreak\ \ignorespaces}
  123. \def\.{.\spacefactor\@m}
  124. \atdef@;{\leavevmode\null;}
  125. \atdef@:{\leavevmode\null:}
  126. \atdef@?{\leavevmode\null?}
  127. {\catcode`\@=\active
  128. \gdef\@{\char'100 }}
  129. \def\relaxnext@{\let\next\relax}
  130. \atdef@-{\relaxnext@\leavevmode
  131.  \def\next@{\ifx\next-\def\next-{\futurelet\next\nextii@}\else
  132.   \def\next{\hbox{-}}\fi\next}%
  133.  \def\nextii@{\ifx\next-\def\next-{\hbox{---}}\else
  134.   \def\next{\hbox{--}}\fi\next}%
  135.  \futurelet\next\next@}
  136. \def\srdr@{\kern.16667em}
  137. \def\drsr@{\kern.02778em}
  138. \def\sldl@{\kern.02778em}
  139. \def\dlsl@{\kern.16667em}
  140. \atdef@"{\unskip\relaxnext@
  141.  \def\next@{\ifx\next\space@\def\next. {\futurelet\next\nextii@}\else
  142.   \def\next.{\futurelet\next\nextii@}\fi\next.}%
  143.  \def\nextii@{\ifx\next`\def\next`{\futurelet\next\nextiii@}\else
  144.   \ifx\next\lq\def\next\lq{\futurelet\next\nextiii@}\else\def\next
  145.    ####1{\futurelet\next\nextiv@}\fi\fi\next}%
  146.  \def\nextiii@{\ifx\next`\def\next`{\sldl@``}\else\ifx\next\lq
  147.   \def\next\lq{\sldl@``}\else\def\next{\dlsl@`}\fi\fi\next}%
  148.  \def\nextiv@{\ifx\next'\def\next'{\srdr@''}\else
  149.   \ifx\next\rq\def\next\rq{\srdr@''}\else\def\next{\drsr@'}\fi\fi\next}%
  150.  \futurelet\next\next@}
  151. \def\flushpar{\par\noindent}
  152. \def\textfontii{\the\textfont\tw@}
  153. \def\lbrace@{\delimiter"4266308 }
  154. \def\rbrace@{\delimiter"5267309 }
  155. \def\{{\relax\ifmmode\lbrace@\else{\textfontii f}\spacefactor\@m\fi}
  156. \def\}{\relax\ifmmode\rbrace@\else
  157.  \let\@sf\empty\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi
  158.  {\textfontii g}\@sf\relax\fi}
  159. \let\lbrace\{
  160. \let\rbrace\}
  161. \def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox
  162.  {\textfontii M}\kern-.125em{\textfontii S}-\TeX}
  163. \def\vmodeerr@#1{\Err@{\string#1\space not allowed between paragraphs}}
  164. \def\mathmodeerr@#1{\Err@{\string#1\space not allowed in math mode}}
  165. \def\linebreak{\relax\ifmmode\mathmodeerr@\linebreak\else\ifhmode
  166.  \unskip\unkern\break\else\vmodeerr@\linebreak\fi\fi}
  167. \def\slash{\unskip/\penalty\exhyphenpenalty}
  168. \newskip\saveskip@
  169. \def\allowlinebreak{\relax\ifmmode\mathmodeerr@\allowlinebreak\else
  170.  \ifhmode\saveskip@\lastskip\unskip
  171.  \allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi
  172.  \else\vmodeerr@\allowlinebreak\fi\fi}
  173. \let\refskip@\relax
  174. \def\nolinebreak{\relax\ifmmode\mathmodeerr@\nolinebreak\else
  175.  \ifhmode\saveskip@\lastskip\unskip
  176.  \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\refskip@\fi
  177.  \else\vmodeerr@\nolinebreak\fi\fi}
  178. \def\newline{\relaxnext@
  179.  \def\next@{\relax\ifmmode\def\next@{\mathmodeerr@\newline}\else
  180.   \ifhmode\ifx\next\par\def\next@{}\else\def\next@
  181.   {\unskip\null\hfill\break}\fi\else
  182.   \def\next@{\vmodeerr@\newline}\fi\fi\next@}%
  183.  \futurelet\next\next@}
  184. \def\dmatherr@#1{\Err@{\string#1\space not allowed in display math mode}}
  185. \def\nondmatherr@#1{\Err@{\string#1\space not allowed in non-display math
  186.  mode}}
  187. \def\onlydmatherr@#1{\Err@{\string#1\space allowed only in display math mode}}
  188. \def\nonmatherr@#1{\Err@{\string#1\space allowed only in math mode}}
  189. \def\mathbreak{\relax\ifmmode\ifinner\break\else
  190.  \dmatherr@\mathbreak\fi\else\nonmatherr@\mathbreak\fi}
  191. \def\nomathbreak{\relax\ifmmode\ifinner\nobreak\else
  192.  \dmatherr@\nomathbreak\fi\else\nonmatherr@\nomathbreak\fi}
  193. \def\allowmathbreak{\relax\ifmmode\ifinner\allowbreak\else
  194.  \dmatherr@\allowmathbreak\fi\else\nonmatherr@\allowmathbreak\fi}
  195. \def\pagebreak{\relax\ifmmode
  196.  \ifinner\nondmatherr@\pagebreak\else\postdisplaypenalty-\@M\fi
  197.  \else\ifvmode\break\else\vadjust{\break}\fi\fi}
  198. \def\nopagebreak{\relax\ifmmode
  199.  \ifinner\nondmatherr@\nopagebreak\else\postdisplaypenalty\@M\fi
  200.  \else\ifvmode\nobreak\else\vadjust{\nobreak}\fi\fi}
  201. \def\nonvmodeerr@#1{\Err@{\string#1\space not allowed within a paragraph
  202.  or in math}}
  203. \def\vnonvmode@#1#2{\relaxnext@
  204.  \def\next@{\ifx\next\par\def\next@{#1}\else
  205.   \def\next@{#2}\fi\next@}%
  206.  \ifvmode\def\next{#1}\else
  207.  \def\next{\futurelet\next\next@}\fi\next}
  208. \def\newpage{\vnonvmode@{\vfill\break}{\nonvmodeerr@\newpage}}
  209. \def\smallpagebreak{\vnonvmode@\smallbreak{\nonvmodeerr@\smallpagebreak}}
  210. \def\medpagebreak{\vnonvmode@\medbreak{\nonvmodeerr@\medpagebreak}}
  211. \def\bigpagebreak{\vnonvmode@\bigbreak{\nonvmodeerr@\bigpagebreak}}
  212. \def\NoBlackBoxes{\global\overfullrule\z@}
  213. \def\BlackBoxes{\global\overfullrule5\p@}
  214. \newdimen\captionwidth@
  215. \captionwidth@\hsize
  216. \advance\captionwidth@-1.5in
  217. \newdimen\smallcaptionwidth@
  218. \def\Invalid@#1{\def#1{\Err@{Invalid use of \string#1}}}
  219. \Invalid@\caption
  220. \Invalid@\captionwidth
  221. \newif\ifmid@
  222. \def\topspace{\mid@false\ins@}
  223. \def\midspace{\mid@true\ins@}
  224. \def\ins@#1{\relaxnext@
  225.  \smallcaptionwidth@\captionwidth@\gdef\thespace@{#1}%
  226.  \def\next@{\ifx\next\space@\def\next. {\futurelet\next\nextii@}\else
  227.   \def\next.{\futurelet\next\nextii@}\fi\next.}%
  228.  \def\nextii@{\ifx\next\caption\def\next\caption{\futurelet\next\nextiii@}%
  229.   \else\let\next\nextiv@\fi\next}%
  230.  \def\nextiv@{\vnonvmode@
  231.   {\ifmid@\let\next\midinsert\else\let\next\topinsert\fi
  232.   \next\vbox to\thespace@{}\endinsert}
  233.   {\ifmid@\nonvmodeerr@\midspace\else\nonvmodeerr@\topspace\fi}}%
  234.  \def\nextiii@{\ifx\next\captionwidth\let\next\nextv@
  235.   \else\let\next\nextvi@\fi\next}%
  236.  \def\nextv@\captionwidth##1##2{\smallcaptionwidth@##1\relax\nextvi@{##2}}%
  237.  \def\nextvi@##1{\def\thecaption@{##1}%
  238.   \def\next@{\ifx\next\space@\def\next. {\futurelet\next\nextvii@}\else
  239.    \def\next.{\futurelet\next\nextvii@}\fi\next.}%
  240.   \futurelet\next\next@}%
  241.  \def\nextvii@{\vnonvmode@
  242.   {\ifmid@\let\next\midinsert\else
  243.   \let\next\topinsert\fi\next\vbox to\thespace@{}\nobreak\smallskip
  244.   \setbox\z@\hbox{\noindent\ignorespaces\thecaption@\unskip}%
  245.   \ifdim\wd\z@>\smallcaptionwidth@\centerline{\vbox{\hsize\smallcaptionwidth@
  246.   \noindent\ignorespaces\thecaption@\unskip}}%
  247.   \else\centerline{\box\z@}\fi\endinsert}
  248.   {\ifmid@\nonvmodeerr@\midspace
  249.   \else\nonvmodeerr@\topspace\fi}}%
  250.  \futurelet\next\next@}
  251. \def\newcodes@{\catcode`\\=12 \catcode`\{=12 \catcode`\}=12 \catcode`\#=12
  252.  \catcode`\%=12\relax}
  253. \def\oldcodes@{\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\#=6
  254.  \catcode`\%=14\relax}
  255. \def\comment{\newcodes@\endlinechar=10 \comment@}
  256. {\lccode`\!=`\\
  257. \lowercase{\gdef\comment@#1^^J{\comment@@#1!endcomment\comment@@@}%
  258. \gdef\comment@@#1!endcomment{\futurelet\next\comment@@@}%
  259. \gdef\comment@@@#1\comment@@@{\ifx\next\comment@@@\let
  260. \next=\comment@\else\def\next{\oldcodes@\endlinechar=`\^^M\relax}%
  261.  \fi\next}}}
  262. \mathchardef\prime@="0230
  263. \def\prime{{{}\prime@{}}}
  264. \def\prim@s{\prime@\futurelet\next\pr@m@s}
  265. \let\dsize\displaystyle
  266. \let\tsize\textstyle
  267. \let\ssize\scriptstyle
  268. \let\sssize\scriptscriptstyle
  269. \def\,{\relax\ifmmode\mskip\thinmuskip\relax\else\kern.16667em\fi}
  270. \def\!{\relax\ifmmode\mskip-\thinmuskip\relax\else\kern-.16667em\fi}
  271. \let\thinspace\,
  272. \let\negthinspace\!
  273. \def\medspace{\relax\ifmmode\mskip\medmuskip\relax\else\kern.222222em\fi}
  274. \def\negmedspace{\relax\ifmmode\mskip-\medmuskip\relax\else\kern-.222222em\fi}
  275. \def\thickspace{\relax\ifmmode\mskip\thickmuskip\relax\else\kern.27777em\fi}
  276. \let\;\thickspace
  277. \def\negthickspace{\relax\ifmmode\mskip-\thickmuskip\relax\else
  278.  \kern-.27777em\fi}
  279. \atdef@,{\relax\ifmmode\mskip.1\thinmuskip\else\leavevmode\null,\fi}
  280. \atdef@!{\relax\ifmmode\mskip-.1\thinmuskip\else\leavevmode\null!\fi}
  281. \atdef@.{\relax\ifmmode&&\else\leavevmode.\spacefactor3000 \fi}
  282. \def\and{\DOTSB\;\mathchar"3026 \;}
  283. \def\implies{\DOTSB\;\Longrightarrow\;}
  284. \def\impliedby{\DOTSB\;\Longleftarrow\;}
  285. \def\frac#1#2{{#1\over#2}}
  286. \def\dfrac#1#2{{\displaystyle{#1\over#2}}}
  287. \def\tfrac#1#2{{\textstyle{#1\over#2}}}
  288. \newdimen\ex@
  289. \ex@.2326ex
  290. \Invalid@\thickness
  291. \def\thickfrac{\relaxnext@
  292.  \def\next@{\ifx\next\thickness\let\next@\nextii@\else
  293.   \def\next@{\nextii@\thickness1}\fi\next@}%
  294.  \def\nextii@\thickness##1##2##3{{##2\above##1\ex@##3}}%
  295.  \futurelet\next\next@}
  296. \def\fracwithdelims#1#2#3#4{{#3\overwithdelims#1#2#4}}
  297. \def\thickfracwithdelims#1#2{\relaxnext@\def\ldelim@{#1}\def\rdelim@{#2}%
  298.  \def\next@{\ifx\next\thickness\let\next@\nextii@\else
  299.   \def\next@{\nextii@\thickness1}\fi\next@}%
  300.  \def\nextii@\thickness##1##2##3{{##2\abovewithdelims
  301.   \ldelim@\rdelim@##1\ex@##3}}%
  302.  \futurelet\next\next@}
  303. \def\binom#1#2{{#1\choose#2}}
  304. \def\dbinom#1#2{{\displaystyle{#1\choose#2}}}
  305. \def\tbinom#1#2{{\textstyle{#1\choose#2}}}
  306. \def\:{\nobreak\hskip.1111em\mathpunct{}\nonscript\mkern-\thinmuskip{:}\hskip
  307.  .3333emplus.0555em\relax}
  308. \def\snug{\unskip\kern-\mathsurround}
  309. \newif\iftop@
  310. \newif\ifbot@
  311. \def\topsmash{\top@true\bot@false\smash@}
  312. \def\botsmash{\top@false\bot@true\smash@}
  313. \def\smash{\top@true\bot@true\smash@}
  314. \def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}\else
  315.  \let\next\makesm@sh\fi\next}
  316. \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
  317. \def\LimitsOnSums{\global\let\slimits@\displaylimits}
  318. \def\NoLimitsOnSums{\global\let\slimits@\nolimits}
  319. \LimitsOnSums
  320. \let\DOTSI\relax
  321. \let\DOTSB\relax
  322. \mathchardef\coprod@="1360       \def\coprod{\DOTSB\coprod@\slimits@}
  323. \mathchardef\bigvee@="1357       \def\bigvee{\DOTSB\bigvee@\slimits@}
  324. \mathchardef\bigwedge@="1356     \def\bigwedge{\DOTSB\bigwedge@\slimits@}
  325. \mathchardef\biguplus@="1355     \def\biguplus{\DOTSB\biguplus@\slimits@}
  326. \mathchardef\bigcap@="1354       \def\bigcap{\DOTSB\bigcap@\slimits@}
  327. \mathchardef\bigcup@="1353       \def\bigcup{\DOTSB\bigcup@\slimits@}
  328. \mathchardef\prod@="1351         \def\prod{\DOTSB\prod@\slimits@}
  329. \mathchardef\sum@="1350          \def\sum{\DOTSB\sum@\slimits@}
  330. \mathchardef\bigotimes@="134E    \def\bigotimes{\DOTSB\bigotimes@\slimits@}
  331. \mathchardef\bigoplus@="134C     \def\bigoplus{\DOTSB\bigoplus@\slimits@}
  332. \mathchardef\bigodot@="134A      \def\bigodot{\DOTSB\bigodot@\slimits@}
  333. \mathchardef\bigsqcup@="1346     \def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
  334. \def\LimitsOnInts{\global\let\ilimits@\displaylimits}
  335. \def\NoLimitsOnInts{\global\let\ilimits@\nolimits}
  336. \NoLimitsOnInts
  337. \def\int{\DOTSI\intop\ilimits@}
  338. \def\oint{\DOTSI\ointop\ilimits@}
  339. \def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
  340. \def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
  341. \def\negintic@{\mathchoice
  342.  {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}
  343. \def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
  344. \def\intdots@{\mathchoice{\plaincdots@}
  345.  {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}
  346.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}
  347.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
  348. \newcount\intno@
  349. \def\iint{\DOTSI\intno@\tw@\futurelet\next\ints@}
  350. \def\iiint{\DOTSI\intno@\thr@@\futurelet\next\ints@}
  351. \def\iiiint{\DOTSI\intno@4 \futurelet\next\ints@}
  352. \def\idotsint{\DOTSI\intno@\z@\futurelet\next\ints@}
  353. \def\ints@{\findlimits@\ints@@}
  354. \newif\iflimtoken@
  355. \newif\iflimits@
  356. \def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
  357.  \else\ifx\next\nolimits\limits@false\else
  358.  \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
  359.  \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}
  360. \def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi
  361.  \ifnum\intno@>\tw@\intop\intkern@\fi
  362.  \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
  363. \def\multint@{\int\ifnum\intno@=\z@\intdots@\else\intkern@\fi
  364.  \ifnum\intno@>\tw@\int\intkern@\fi
  365.  \ifnum\intno@>\thr@@\int\intkern@\fi\int}
  366. \def\ints@@{\iflimtoken@\def\ints@@@{\iflimits@
  367.  \negintic@\mathop{\intic@\multintlimits@}\limits\else
  368.  \multint@\nolimits\fi\eat@}\else\def\ints@@@{\iflimits@\negintic@
  369.  \mathop{\intic@\multintlimits@}\limits\else
  370.  \multint@\nolimits\fi}\fi\ints@@@}
  371. \def\LimitsOnNames{\global\let\nlimits@\displaylimits}
  372. \def\NoLimitsOnNames{\global\let\nlimits@\nolimits@}
  373. \LimitsOnNames
  374. \def\nolimits@{\relaxnext@
  375.  \def\next@{\ifx\next\limits\def\next\limits{\nolimits}\else
  376.   \def\next{\nolimits}\fi\next}%
  377.  \futurelet\next\next@}
  378. \def\newmcodes@{\mathcode`\'="0027 \mathcode`\*="002A \mathcode`\.="613A
  379.  \mathcode`\-="002D \mathcode`\/="002F \mathcode`\:="603A }
  380. \def\operatorname#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nolimits@}
  381. \def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nlimits@}
  382. \def\qopname@#1{\mathop{\fam\z@#1}\nolimits@}
  383. \def\qopnamewl@#1{\mathop{\fam\z@#1}\nlimits@}
  384. \def\arccos{\qopname@{arccos}}
  385. \def\arcsin{\qopname@{arcsin}}
  386. \def\arctan{\qopname@{arctan}}
  387. \def\arg{\qopname@{arg}}
  388. \def\cos{\qopname@{cos}}
  389. \def\cosh{\qopname@{cosh}}
  390. \def\cot{\qopname@{cot}}
  391. \def\coth{\qopname@{coth}}
  392. \def\csc{\qopname@{csc}}
  393. \def\deg{\qopname@{deg}}
  394. \def\det{\qopnamewl@{det}}
  395. \def\dim{\qopname@{dim}}
  396. \def\exp{\qopname@{exp}}
  397. \def\gcd{\qopnamewl@{gcd}}
  398. \def\hom{\qopname@{hom}}
  399. \def\inf{\qopnamewl@{inf}}
  400. \def\injlim{\qopnamewl@{inj\,lim}}
  401. \def\ker{\qopname@{ker}}
  402. \def\lg{\qopname@{lg}}
  403. \def\lim{\qopnamewl@{lim}}
  404. \def\liminf{\qopnamewl@{lim\,inf}}
  405. \def\limsup{\qopnamewl@{lim\,sup}}
  406. \def\ln{\qopname@{ln}}
  407. \def\log{\qopname@{log}}
  408. \def\max{\qopnamewl@{max}}
  409. \def\min{\qopnamewl@{min}}
  410. \def\Pr{\qopnamewl@{Pr}}
  411. \def\projlim{\qopnamewl@{proj\,lim}}
  412. \def\sec{\qopname@{sec}}
  413. \def\sin{\qopname@{sin}}
  414. \def\sinh{\qopname@{sinh}}
  415. \def\sup{\qopnamewl@{sup}}
  416. \def\tan{\qopname@{tan}}
  417. \def\tanh{\qopname@{tanh}}
  418. \def\varinjlim{\mathop{\vtop{\ialign{$##$\cr
  419.  \hfil{\fam\z@ lim}\hfil\cr\noalign{\nointerlineskip}%
  420.  {-}\mkern-6mu\cleaders\hbox{$\mkern-2mu{-}\mkern-2mu$}\hfill
  421.  \mkern-6mu{\to}\cr\noalign{\nointerlineskip\kern-\ex@}\cr}}}}
  422. \def\varprojlim{\mathop{\vtop{\ialign{$##$\cr
  423.  \hfil{\fam\z@ lim}\hfil\cr\noalign{\nointerlineskip}%
  424.  {\leftarrow}\mkern-6mu\cleaders\hbox{$\mkern-2mu{-}\mkern-2mu$}\hfill
  425.  \mkern-6mu{-}\cr\noalign{\nointerlineskip\kern-\ex@}\cr}}}}
  426. \def\varliminf{\mathop{\underline{\vrule height\z@ depth.2exwidth\z@
  427.  \hbox{\rm lim}}}}
  428. \def\varlimsup{\mathop{\overline{\hbox{\rm lim}}}}
  429. \newdimen\buffer@
  430. \buffer@\fontdimen13 \tenex
  431. \newdimen\buffer
  432. \buffer\buffer@
  433. \def\ChangeBuffer#1{\fontdimen13 \tenex#1\relax
  434.  \global\buffer\fontdimen13 \tenex}
  435. \def\ResetBuffer{\fontdimen13 \tenex\buffer@\global\buffer\buffer@}
  436. \def\shave#1{\mathop{\hbox{$\fontdimen13 \tenex\z@
  437.  \displaystyle{#1}$}}\fontdimen13 \tenex\buffer}
  438. \def\topshave#1{\topsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}
  439. \def\botshave#1{\botsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}
  440. \Invalid@\\
  441. \def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi}
  442. \Invalid@\vspace
  443. \def\vspace@{\def\vspace##1{\noalign{\vskip##1\relax}}}
  444. \def\multilimits@{\bgroup\vspace@\Let@
  445.  \baselineskip\fontdimen10 \scriptfont\tw@
  446.  \advance\baselineskip\fontdimen12 \scriptfont\tw@
  447.  \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
  448.  \lineskiplimit\thr@@\fontdimen8 \scriptfont\thr@@
  449.  \vbox\bgroup\ialign\bgroup\hfil$\scriptstyle{##}$\hfil\cr}
  450. \def\Sb{_\multilimits@}
  451. \def\endSb{\cr\egroup\egroup\egroup}
  452. \def\Sp{^\multilimits@}
  453. \let\endSp\endSb
  454. \def\ialign{\everycr{}\tabskip\z@skip\halign}
  455. \def\spreadlines#1{\relax\ifmmode\ifinner\onlydmatherr@\spreadlines\else
  456.  \openup#1\relax\fi\else\onlydmatherr@\spreadlines\fi}
  457. \def\Mathstrut@{\setbox\z@\hbox{$($}\setbox\tw@\null\ht\tw@\ht\z@\dp\tw@\dp\z@
  458.  \box\tw@}
  459. \newdimen\spreadmlines@
  460. \def\spreadmatrixlines#1{\relax\ifmmode\ifinner\onlydmatherr@\spreadmatrixlines
  461.  \else\spreadmlines@#1\relax\fi\else\onlydmatherr@\spreadmatrixlines\fi}
  462. \def\matrix{\catcode`\^^I=4 {}\,\vcenter\bgroup\Let@\vspace@
  463.  \normalbaselines\openup\spreadmlines@\m@th\ialign
  464.  \bgroup\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
  465.  \Mathstrut@\crcr\noalign{\kern-\baselineskip}}
  466. \def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-\baselineskip}\egroup
  467.  \egroup\,\catcode`\^^I=10 }
  468. \def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
  469. \def\format@#1\\{\def\preamble@{#1}%
  470.  \def\c{\hfil$\the\hashtoks@$\hfil}%
  471.  \def\r{\hfil$\the\hashtoks@$}%
  472.  \def\l{$\the\hashtoks@$\hfil}%
  473.  \setbox\z@\hbox{\xdef\Preamble@{\preamble@}}\ifnum`{=0 \fi\iffalse}\fi
  474.  \ialign\bgroup\span\Preamble@\crcr}
  475. \def\smallmatrix{{}\,\vcenter\bgroup\vspace@\Let@
  476.  \baselineskip9\ex@\lineskip\ex@
  477.  \m@th\ialign\bgroup\hfil$\scriptstyle{##}$\hfil&&\thickspace\hfil
  478.  $\scriptstyle{##}$\hfil\crcr}
  479. \def\endsmallmatrix{\crcr\egroup\egroup\,}
  480. \def\pmatrix{\left(\matrix}
  481. \def\endpmatrix{\endmatrix\right)}
  482. \def\bmatrix{\left[\matrix}
  483. \def\endbmatrix{\endmatrix\right]}
  484. \def\vmatrix{\left|\matrix}
  485. \def\endvmatrix{\endmatrix\right|}
  486. \def\Vmatrix{\left\|\matrix}
  487. \def\endVmatrix{\endmatrix\right\|}
  488. \def\hdots{\mathinner{\ldotp\ldotp\ldotp}}
  489. \newmuskip\dotsspace@
  490. \dotsspace@1.5mu
  491. \def\strip@#1 {#1}
  492. \def\spacehdots#1\for#2{\multispan{#2}\xleaders
  493.  \hbox{$\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
  494. \def\hdotsfor#1{\spacehdots\@ne\for{#1}}
  495. \def\multispan@#1{\omit\mscount#1\unskip\loop\ifnum\mscount>\@ne\sp@n\repeat}
  496. \def\spaceinnerhdots#1\for#2\after#3{\multispan@{\strip@#2 }#3\xleaders
  497.  \hbox{$\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
  498. \def\innerhdotsfor#1\after#2{\spaceinnerhdots\@ne\for#1\after{#2}}
  499. \def\enabletabs{\catcode`\^^I=4 \enabletabs@}
  500. \def\enabletabs@#1\disabletabs{#1\catcode`\^^I=10 }
  501. \def\EnableTabs{\catcode`\^^I=4 }
  502. \def\DisableTabs{\catcode`\^^I=10 }
  503. \def\cases{\bgroup\spreadmlines@\jot\left\{\,\matrix\format\l&\quad\l\\}
  504. \def\endcases{\endmatrix\right.\egroup}
  505. \newif\ifinalign@
  506. \newif\ifingather@
  507. \newif\ifinany@
  508. \newbox\strutbox@
  509. \setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@}
  510. \def\strut@{\copy\strutbox@}
  511. \def\topaligned{{}\,\vtop\aligned@}
  512. \def\botaligned{{}\,\vbox\aligned@}
  513. \def\aligned{{}\,\vcenter\aligned@}
  514. \def\aligned@{\bgroup\vspace@\Let@
  515.  \ifinany@\else\openup\jot\fi\m@th\ialign
  516.  \bgroup\hfil\strut@$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr}
  517. \def\endaligned{\crcr\egroup\egroup}
  518. \let\endtopaligned\endaligned
  519. \let\endbotaligned\endaligned
  520. \newcount\atcount@
  521. \newtoks\hashtoks@
  522. \hashtoks@{#}
  523. \def\alignedat#1{{}\,\vcenter\bgroup\doat@{#1}\vspace@\Let@
  524.  \ifinany@\else\openup\jot\fi\m@th\ialign\bgroup\span\preamble@@\crcr}
  525. \def\doat@#1{\toks@{\hfil\strut@$\displaystyle{\the\hashtoks@}$&$\displaystyle
  526.  {{}\the\hashtoks@}$\hfil}\atcount@#1\relax\advance\atcount@\m@ne
  527.  \loop\ifnum\atcount@>\z@\toks@=\expandafter{\the\toks@&\hfil$\displaystyle
  528.  {\the\hashtoks@}$&$\displaystyle{{}\the\hashtoks@}$\hfil}\advance
  529.  \atcount@\m@ne\repeat\xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
  530. \let\endalignedat\endaligned
  531. \def\gathered{{}\,\vcenter\bgroup\vspace@\Let@
  532.  \ifinany@\else\openup\jot\fi\m@th\ialign
  533.  \bgroup\hfil\strut@$\displaystyle{##}$\hfil\crcr}
  534. \def\endgathered{\crcr\egroup\egroup}
  535. \newif\iftagsleft@
  536. \def\TagsOnLeft{\global\tagsleft@true}
  537. \def\TagsOnRight{\global\tagsleft@false}
  538. \TagsOnLeft
  539. \newif\ifmathtags@
  540. \def\TagsAsMath{\global\mathtags@true}
  541. \def\TagsAsText{\global\mathtags@false}
  542. \TagsAsText
  543. \def\tagform@#1{\hbox{\rm(\ignorespaces#1\unskip)}}
  544. \def\thetag{\leavevmode\tagform@}
  545. \def\tag#1$${\iftagsleft@\leqno\else\eqno\fi\maketag@#1\maketag@$$}
  546. \def\maketag@{\relaxnext@
  547.  \def\next@{\ifx\next"\let\next@\nextii@\else\let\next@\nextiii@\fi\next@}%
  548.  \def\nextii@"##1"##2\maketag@{\hbox{\rm##1}}%
  549.  \def\nextiii@##1\maketag@{\ifmathtags@\tagform@{$##1$}\else
  550.   \tagform@{##1}\fi}%
  551.  \futurelet\next\next@}
  552. \interdisplaylinepenalty\@M
  553. \def\allowdisplaybreaks{\relax\ifmmode\ifinner\onlydmatherr@\allowdisplaybreaks
  554.  \else\interdisplaylinepenalty\z@\fi\else\onlydmatherr@\allowdisplaybreaks\fi}
  555. \def\allowdisplaybreak@{\def\allowdisplaybreak{\noalign{\allowbreak}}}
  556. \def\displaybreak@{\def\displaybreak{\noalign{\break}}}
  557. \def\intertext@{\def\intertext##1{\noalign{\vskip\abovedisplayskip
  558.  \vbox{\normalbaselines\noindent##1}\vskip\belowdisplayskip}}}
  559. \newskip\centering@
  560. \centering@\z@ plus\@m\p@
  561. \def\align{\relaxnext@\ifingather@\let\next\galign@\else
  562.  \ifmmode\ifinner\def\next{\onlydmatherr@\align}\else
  563.  \let\next\align@\fi\else
  564.  \def\next{\onlydmatherr@\align}\fi\fi\next}
  565. \newcount\and@
  566. \def\align@{\inalign@true\inany@true
  567.  \def\tag{\ifnum\and@=\z@\def\next{&&}\else\def\next{&}\fi\next}%
  568.  \vspace@\allowdisplaybreak@\displaybreak@\intertext@
  569.  \iftagsleft@\let\next\lalign@\else\let\next\ralign@\fi\next}
  570. \newdimen\lwidth@
  571. \newdimen\rwidth@
  572. \newdimen\maxlwidth@
  573. \newdimen\maxrwidth@
  574. \newdimen\totwidth@
  575. \def\measure@#1\endalign{\lwidth@\z@\rwidth@\z@
  576.  \maxlwidth@\z@\maxrwidth@\z@\and@\z@
  577.  \setbox\@ne\vbox{\everycr{\noalign{\global\and@\z@}}\Let@
  578.  \halign{\setbox\z@\hbox{$\displaystyle{\everycr{}##}$}%
  579.  \global\lwidth@\wd\z@
  580.  \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
  581.  \global\advance\and@\@ne
  582.  &\setbox\z@\hbox{$\displaystyle{{}\everycr{}##}$}\global\rwidth@\wd\z@
  583.  \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
  584.  \global\advance\and@\@ne
  585.  &\eat@{\everycr{}##}\crcr#1\crcr}}\totwidth@\maxlwidth@
  586.  \advance\totwidth@\maxrwidth@}
  587. \def\displ@y@{\global\dt@ptrue\openup\jot\m@th
  588.  \everycr{\noalign{\global\and@\z@\ifdt@p\global\dt@pfalse
  589.  \vskip-\lineskiplimit\vskip\normallineskiplimit\else
  590.  \penalty\interdisplaylinepenalty\fi}}}
  591. \def\black@#1{\noalign{\ifdim#1>\displaywidth
  592.  \dimen@\prevdepth\nointerlineskip
  593.  \vskip-\ht\strutbox@\vskip-\dp\strutbox@
  594.  \vbox{\noindent\hbox to#1{\strut@\hfill\strut@}}%
  595.  \prevdepth\dimen@\fi}}
  596. \def\ralign@#1\endalign{\measure@#1\endalign\and@\z@
  597.  \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi\Let@
  598.  \tabskip\centering@\halign to\displaywidth
  599.  {\hfil\strut@\setbox\z@\hbox{$\displaystyle{\everycr{}##}$}%
  600.  \global\lwidth@\wd\z@\box\z@\global\advance\and@\@ne
  601.  \tabskip\z@skip&\setbox\z@\hbox{$\displaystyle{{}\everycr{}##}$}%
  602.  \global\rwidth@\wd\z@\box\z@\hfill\global\advance\and@\@ne
  603.  \tabskip\centering@&\setbox\z@\hbox{\everycr{}\strut@\maketag@##\maketag@}%
  604.  \dimen@\displaywidth\advance\dimen@-\totwidth@
  605.  \divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@
  606.  \ifdim\dimen@>\tw@\wd\z@\llap{\box\z@}\else
  607.  \llap{\vtop{\normalbaselines\null\box\z@}}\fi
  608.  \tabskip\z@skip\crcr#1\crcr\black@\totwidth@}}
  609. \newdimen\lineht@
  610. \def\lalign@#1\endalign{\measure@#1\endalign\and@\z@
  611.  \ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else
  612.  \let\displaywidth@\displaywidth\fi
  613.  \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi\Let@
  614.  \tabskip\centering@\halign to\displaywidth
  615.  {\hfil\strut@\setbox\z@\hbox{$\displaystyle{\everycr{}##}$}%
  616.  \global\lwidth@\wd\z@\global\lineht@\ht\z@\box\z@\global\advance\and@\@ne
  617.  \tabskip\z@skip&\setbox\z@\hbox{$\displaystyle{{}\everycr{}##}$}%
  618.  \global\rwidth@\wd\z@\ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi
  619.  \box\z@\hfil\global\advance\and@\@ne
  620.  \tabskip\centering@&\kern-\displaywidth@
  621.  \setbox\z@\hbox{\everycr{}\strut@\maketag@##\maketag@}%
  622.  \dimen@\displaywidth\advance\dimen@-\totwidth@
  623.  \divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@
  624.  \ifdim\dimen@>\tw@\wd\z@\rlap{\box\z@}\else
  625.  \rlap{\vbox{\normalbaselines\box\z@\vbox to\lineht@{}}}\fi
  626.  \tabskip\displaywidth@\crcr#1\crcr\black@\totwidth@}}
  627. \def\galign@#1\endalign{\vcenter{\m@th\align@#1\endalign}}
  628. \newbox\savealignat@
  629. \newif\ifxat@
  630. \newif\ifmeasuring@
  631. \def\alignat{\relaxnext@\ifmmode\ifinner\def\next{\onlydmatherr@\alignat}\else
  632.  \let\next\alignat@\fi\else\def\next{\onlydmatherr@\alignat}\fi\next}
  633. \def\alignat@#1#2\endalignat{\inany@true\xat@false
  634.  \def\tag{\xdef\tag@{}\count@#1\relax\multiply\count@\tw@
  635.  \loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne\repeat\tag@}%
  636.  \vspace@\allowdisplaybreak@\displaybreak@\intertext@
  637.  \displ@y@\measuring@true\setbox\savealignat@\hbox{$\displaystyle\Let@
  638.  \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
  639.  \measuring@false\Let@
  640.  \attag@{#1}\tabskip\centering@\halign to\displaywidth
  641.  {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
  642. \def\xalignat{\relaxnext@\ifmmode\ifinner
  643.  \def\next{\onlydmatherr@\xalignat}\else\let\next\xalignat@\fi\else
  644.  \def\next{\onlydmatherr@\xalignat}\fi\next}
  645. \def\xalignat@#1#2\endxalignat{\inany@true\xat@true
  646.  \def\tag{\def\tag@{}\count@#1\relax\multiply\count@\tw@
  647.  \loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne\repeat\tag@}%
  648.  \vspace@\allowdisplaybreak@\displaybreak@\intertext@
  649.  \displ@y@\measuring@true\setbox\savealignat@\hbox{$\displaystyle\Let@
  650.  \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
  651.  \measuring@false\Let@
  652.  \attag@{#1}\tabskip\centering@\halign to\displaywidth
  653.  {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
  654. \def\attag@#1{\let\Maketag@\maketag@\let\maketag@=0
  655.  \ifmeasuring@\def\llap@##1{\setbox\z@\hbox{##1}\hbox to\tw@\wd\z@{}}%
  656.  \def\rlap@##1{\setbox\z@\hbox{##1}\hbox to\tw@\wd\z@{}}\else
  657.  \let\llap@\llap\let\rlap@\rlap\fi
  658.  \toks@{\hfil\strut@$\displaystyle{\everycr{}\the\hashtoks@}$\tabskip\z@skip
  659.  \global\advance\and@\@ne&$\displaystyle{{}\everycr{}\the\hashtoks@}$%
  660.  \hfil\ifxat@\tabskip\centering@\fi\global\advance
  661.  \and@\@ne}\iftagsleft@
  662.  \toks@@{\tabskip\centering@&\kern-\displaywidth
  663.  \rlap@{\everycr{}\maketag@\the\hashtoks@\maketag@}%
  664.  \global\advance\and@\@ne\tabskip\displaywidth}\else
  665.  \toks@@{\tabskip\centering@&\llap@{\everycr{}\maketag@
  666.  \the\hashtoks@\maketag@}\global\advance\and@\@ne\tabskip\z@skip}\fi
  667.  \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
  668.  \toks@=\expandafter{\the\toks@&\hfil$\displaystyle{\everycr{}%
  669.  \the\hashtoks@}$\global\advance\and@\@ne
  670.  \tabskip\z@skip&$\displaystyle{{}\everycr{}\the\hashtoks@}$\hfil\ifxat@
  671.  \tabskip\centering@\fi\global\advance\and@\@ne}\advance\atcount@\m@ne\repeat
  672.  \xdef\preamble@{\the\toks@\the\toks@@}\xdef\preamble@@{\preamble@}%
  673.  \let\maketag@\Maketag@}
  674. \def\xxalignat{\relaxnext@\ifmmode\ifinner
  675.  \def\next{\onlydmatherr@\xxalignat}\else\let\next\xxalignat@\fi\else
  676.  \def\next{\onlydmatherr@\xxalignat}\fi\next}
  677. \def\xxalignat@#1#2\endxxalignat{\inany@true
  678.  \vspace@\allowdisplaybreak@\displaybreak@\intertext@
  679.  \displ@y\setbox\savealignat@\hbox{$\displaystyle\Let@
  680.  \xxattag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
  681.  \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth
  682.  {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
  683. \def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
  684.  $\displaystyle{\the\hashtoks@}$&%
  685.  $\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\centering@&}%
  686.  \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
  687.  \toks@=\expandafter{\the\toks@&\hfil$\displaystyle{\the\hashtoks@}$%
  688.  \tabskip\z@skip&$\displaystyle{{}\the\hashtoks@}$\hfil
  689.  \tabskip\centering@}\advance\atcount@\m@ne\repeat
  690.  \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
  691. \newdimen\gwidth@
  692. \newdimen\gmaxwidth@
  693. \def\gmeasure@#1\endgather{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@
  694.  \halign{\setbox\z@\hbox{$\displaystyle{##}$}\global\gwidth@\wd\z@
  695.  \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
  696.  &\eat@{##}\crcr#1\crcr}}}
  697. \def\gather{\relaxnext@\ifmmode\ifinner\def\next{\onlydmatherr@\gather}\else
  698.  \ingather@true\inany@true\def\tag{&}%
  699.  \vspace@\allowdisplaybreak@\displaybreak@\intertext@
  700.  \displ@y\Let@
  701.  \iftagsleft@\let\next\lgather@\else\let\next\rgather@\fi\fi
  702.  \else\def\next{\onlydmatherr@\gather}\fi\next}
  703. \def\rgather@#1\endgather{\gmeasure@#1\endgather\tabskip\centering@
  704.  \halign to\displaywidth{\hfil\strut@\setbox\z@\hbox{$\displaystyle{##}$}%
  705.  \global\gwidth@\wd\z@\box\z@\hfil&
  706.  \setbox\z@\hbox{\strut@{\maketag@##\maketag@}}%
  707.  \dimen@\displaywidth\advance\dimen@-\gwidth@
  708.  \ifdim\dimen@>\tw@\wd\z@\llap{\box\z@}\else
  709.  \llap{\vtop{\normalbaselines\null\box\z@}}\fi
  710.  \tabskip\z@skip\crcr#1\crcr\black@\gmaxwidth@}}
  711. \newdimen\glineht@
  712. \def\lgather@#1\endgather{\gmeasure@#1\endgather
  713.  \ifdim\gmaxwidth@>\displaywidth\let\gdisplaywidth@\gmaxwidth@\else
  714.  \let\gdisplaywidth@\displaywidth\fi\tabskip\centering@\halign to\displaywidth
  715.  {\hfil\strut@\setbox\z@\hbox{$\displaystyle{##}$}%
  716.  \global\gwidth@\wd\z@\global\glineht@\ht\z@\box\z@\hfil&\kern-\gdisplaywidth@
  717.  \setbox\z@\hbox{\strut@{\maketag@##\maketag@}}%
  718.  \dimen@\displaywidth\advance\dimen@-\gwidth@
  719.  \ifdim\dimen@>\tw@\wd\z@\rlap{\box\z@}\else
  720.  \rlap{\vbox{\normalbaselines\box\z@\vbox to\glineht@{}}}\fi
  721.  \tabskip\gdisplaywidth@\crcr#1\crcr\black@\gmaxwidth@}}
  722. \newif\ifctagsplit@
  723. \def\CenteredTagsOnSplits{\global\ctagsplit@true}
  724. \def\TopOrBottomTagsOnSplits{\global\ctagsplit@false}
  725. \def\split{\relaxnext@\ifinany@\let\next\insplit@\else
  726.  \ifmmode\ifinner\def\next{\onlydmatherr@\split}\else
  727.  \let\next\outsplit@\fi\else
  728.  \def\next{\onlydmatherr@\split}\fi\fi\next}
  729. \def\outsplit@#1$${\align\insplit@#1\endalign$$}
  730. \def\insplit@{\global\setbox\z@\vbox\bgroup\vspace@\Let@\m@th\ialign\bgroup
  731.  \hfil\strut@$\displaystyle{##}$&$\displaystyle{{}##}$\hfill\crcr}
  732. \def\endsplit{\crcr\egroup\egroup\iftagsleft@\let\next\lendsplit@\else
  733.  \let\next\rendsplit@\fi\next}
  734. \def\rendsplit@{\global\setbox9\vbox
  735.  {\unvcopy\z@\global\setbox8\lastbox\unskip}%
  736.  \setbox\@ne\hbox{\unhcopy8\unskip\global\setbox\tw@\lastbox
  737.  \unskip\global\setbox\thr@@\lastbox}%
  738.  \global\setbox7\hbox{\unhbox\tw@\unskip}%
  739.  \ifinalign@
  740.   \ifctagsplit@\gdef\split@{\hbox to\wd\thr@@{}&
  741.   \vcenter{\vbox{\moveleft\wd\thr@@\box\z@}}}\else
  742.   \gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
  743.   \box\thr@@&\box7}\fi
  744.  \else
  745.   \ifctagsplit@\gdef\split@{\vcenter{\box\z@}}\else
  746.   \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
  747.  \fi\split@}
  748. \def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%
  749.  \setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%
  750.  \setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
  751.  \unskip\global\setbox\thr@@\lastbox}%
  752.  \ifinalign@
  753.   \ifctagsplit@\gdef\split@{\hbox to\wd\thr@@{}&
  754.   \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}\else
  755.   \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
  756.  \else
  757.   \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
  758.   \gdef\split@{\box9}\fi
  759.  \fi\split@}
  760. \newdimen\multlinegap@
  761. \multlinegap@1em
  762. \newdimen\multlinetaggap@
  763. \multlinetaggap@1em
  764. \def\MultlineGap#1{\global\multlinegap@#1\relax}
  765. \def\multlinegap#1{\relax\ifmmode\ifinner\onlydmatherr@\multlinegap\else
  766.  \multlinegap@#1\relax\fi\else\onlydmatherr@\multlinegap\fi}
  767. \def\nomultlinegap{\multlinegap{\z@}}
  768. \newbox\mtagbox@
  769. \newif\iftagin@
  770. \def\tagin@#1{\tagin@false\in@\tag{#1}\ifin@\tagin@true\fi}
  771. \newdimen\ltwidth@
  772. \newdimen\rtwidth@
  773. \newdimen\mwidth@
  774. \newdimen\mlineht@
  775. \newif\ifzerocr@
  776. \newif\ifonecr@
  777. \def\lmmeasure@#1\endmultline{\m@th\global\zerocr@true\global\onecr@false
  778.  \everycr{\noalign{\ifonecr@\global\onecr@false\fi
  779.  \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
  780.  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
  781.  \setbox\@ne\vbox{\Let@\halign{\setbox\z@\hbox
  782.  {$\everycr{}\displaystyle{}##$}\ifonecr@\global\mwidth@\wd\z@
  783.  \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
  784. \def\rmmeasure@#1\endmultline{\m@th
  785.  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
  786.  \setbox\@ne\vbox{\Let@\halign{\setbox\z@\hbox
  787.  {$\everycr{}\displaystyle{}##$}\global\mwidth@\wd\z@
  788.  \crcr#1\crcr}}}
  789. \def\multline{\relaxnext@\ifmmode\ifinner
  790.  \def\next{\onlydmatherr@\multline}\else\let\next\multline@\fi\else
  791.  \def\next{\onlydmatherr@\multline}\fi\next}
  792. \def\multline@#1$${\inany@true\vspace@\allowdisplaybreak@\displaybreak@
  793.  \tagin@{#1}\iftagsleft@\def\next{\lmultline@#1$$}\else
  794.  \def\next{\rmultline@#1$$}\fi\next}
  795. \def\lmultline@#1$${\iftagin@\def\next{\lmultline@@#1$$}\else
  796.  \def\next{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
  797.  \lmultline@@@#1$$}\fi\next}
  798. \def\lmultline@@#1\endmultline\tag#2$${\rtwidth@\z@
  799.  \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%
  800.  \lmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
  801.  \advance\dimen@\multlinetaggap@
  802.  \ifdim\dimen@>\displaywidth\ltwidth@\z@\else\ltwidth@\wd\mtagbox@\fi
  803.  \lmultline@@@#1\endmultline$$}
  804. \def\lmultline@@@{\displ@y
  805.  \def\shoveright##1{##1\hfilneg\hskip\multlinegap@}%
  806.  \def\shoveleft##1{\setbox\z@\hbox{$\displaystyle{}##1$}%
  807.   \setbox\@ne\hbox{$\displaystyle##1$}%
  808.   \hfilneg\iftagin@\ifdim\ltwidth@>\z@\hskip\ltwidth@\hskip\multlinetaggap@\fi
  809.   \else\hskip\multlinegap@\fi\hskip.5\wd\@ne\hskip-.5\wd\z@##1}%
  810.   \halign\bgroup\Let@\hbox to\displaywidth
  811.   {\strut@$\displaystyle\hfil{}##\hfil$}\crcr
  812.   \hfilneg\iftagin@\ifdim\ltwidth@>\z@\box\mtagbox@\hskip\multlinetaggap@\else
  813.   \rlap{\vbox{\normalbaselines\hbox{\strut@\box\mtagbox@}%
  814.   \vbox to\mlineht@{}}}\fi\else\hskip\multlinegap@\fi}
  815. \def\rmultline@#1$${\iftagin@\def\next{\rmultline@@#1$$}\else
  816.  \def\next{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@
  817.  \rmultline@@@#1$$}\fi\next}
  818. \def\rmultline@@#1\endmultline\tag#2$${\ltwidth@\z@
  819.  \setbox\mtagbox@\hbox{\maketag@#2\maketag@}%
  820.  \rmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@
  821.  \advance\dimen@\multlinetaggap@
  822.  \ifdim\dimen@>\displaywidth\rtwidth@\z@\else\rtwidth@\wd\mtagbox@\fi
  823.  \rmultline@@@#1\endmultline$$}
  824. \def\rmultline@@@{\displ@y
  825.  \def\shoveright##1{##1\hfilneg\iftagin@\ifdim\rtwidth@>\z@
  826.   \hskip\rtwidth@\hskip\multlinetaggap@\fi\else\hskip\multlinegap@\fi}%
  827.  \def\shoveleft##1{\setbox\z@\hbox{$\displaystyle{}##1$}%
  828.   \setbox\@ne\hbox{$\displaystyle##1$}%
  829.   \hfilneg\hskip\multlinegap@\hskip.5\wd\@ne\hskip-.5\wd\z@##1}%
  830.  \halign\bgroup\Let@\hbox to\displaywidth
  831.  {\strut@$\displaystyle\hfil{}##\hfil$}\crcr
  832.  \hfilneg\hskip\multlinegap@}
  833. \def\endmultline{\iftagsleft@\let\next\lendmultline@\else
  834.  \let\next\rendmultline@\fi\next}
  835. \def\lendmultline@{\hfilneg\hskip\multlinegap@\crcr\egroup}
  836. \def\rendmultline@{\iftagin@\ifdim\rtwidth@>\z@\hskip\multlinetaggap@
  837.  \box\mtagbox@\else\llap
  838.  {\vtop{\normalbaselines\null\hbox{\strut@\box\mtagbox@}}}\fi\else
  839.  \hskip\multlinegap@\fi\hfilneg\crcr\egroup}
  840. \def\mod#1{\allowbreak\ifinner\mkern12mu\else\mkern18mu\fi{\fam\z@ mod}\,\,#1}
  841. \def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
  842. \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin{\fam\z@ mod}\penalty900
  843.  \mkern5mu\mskip-\medmuskip}
  844. \def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
  845.  ({\fam\z@ mod}\,\,#1)}
  846. \newcount\cfraccount@
  847. \def\gloop@#1\repeat{\gdef\body{#1}\iterate}
  848. \def\cfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
  849.  \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
  850. \def\lcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
  851.  \iffalse{\fi\def\\{\hfill\over\displaystyle}\iffalse}\fi}
  852. \def\rcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut\hfill
  853.  \iffalse{\fi\def\\{\over\displaystyle\hfill}\iffalse}\fi}
  854. \def\endcfrac{\gloop@\ifnum\cfraccount@>\z@\global\advance\cfraccount@\m@ne
  855.  \egroup\hskip-\nulldelimiterspace\egroup\repeat}
  856. \def\binrel@#1{\setbox\z@\hbox{\thinmuskip0mu
  857.  \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
  858.  \setbox\@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
  859.  \@ne mu${}#1{}\m@th$}%
  860.  \setbox\tw@\hbox{\hskip\wd\@ne\hskip-\wd\z@}}
  861. \def\overset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
  862.  \mathbin{\mathop{\kern\z@#2}\limits^{#1}}\else\ifdim\wd\tw@>\z@
  863.  \mathrel{\mathop{\kern\z@#2}\limits^{#1}}\else
  864.  {\mathop{\kern\z@#2}\limits^{#1}}{}\fi\fi}
  865. \def\underset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
  866.  \mathbin{\mathop{\kern\z@#2}\limits_{#1}}\else\ifdim\wd\tw@>\z@
  867.  \mathrel{\mathop{\kern\z@#2}\limits_{#1}}\else
  868.  {\mathop{\kern\z@#2}\limits_{#1}}{}\fi\fi}
  869. \def\oversetbrace#1\to#2{\overbrace{#2}^{#1}}
  870. \def\undersetbrace#1\to#2{\underbrace{#2}_{#1}}
  871. \def\sideset#1\and#2\to#3{%
  872.  \setbox\@ne\hbox{$\dsize{\vphantom{#3}}#1{#3}\m@th$}%
  873.  \setbox\tw@\hbox{$\dsize{#3}#2\m@th$}%
  874.  \kern\wd\@ne\kern-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\@ne
  875.  {\vphantom{#3}}#1{#3}#2}}
  876. \def\overrightarrow{\mathpalette\overrightarrow@}
  877. \def\overrightarrow@#1#2{\vbox{\ialign{$##$\cr
  878.  #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  879.  \mkern-6mu{\to}\cr\noalign{\kern-\ex@\nointerlineskip}\hfil#1#2\hfil\cr}}}
  880. \let\overarrow\overrightarrow
  881. \def\overleftarrow{\mathpalette\overleftarrow@}
  882. \def\overleftarrow@#1#2{\vbox{\ialign{$##$\cr
  883.  #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  884.  \mkern-6mu{-}\cr\noalign{\kern-\ex@\nointerlineskip}\hfil#1#2\hfil\cr}}}
  885. \def\overleftrightarrow{\mathpalette\overleftrightarrow@}
  886. \def\overleftrightarrow@#1#2{\vbox{\ialign{$##$\cr
  887.  #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  888.  \mkern-6mu{\to}\cr\noalign{\kern-\ex@\nointerlineskip}\hfil#1#2\hfil\cr}}}
  889. \def\underrightarrow{\mathpalette\underrightarrow@}
  890. \def\underrightarrow@#1#2{\vtop{\ialign{$##$\cr
  891.  \hfil#1#2\hfil\cr\noalign{\nointerlineskip}%
  892.  #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  893.  \mkern-6mu{\to}\cr}}}
  894. \let\underarrow\underrightarrow
  895. \def\underleftarrow{\mathpalette\underleftarrow@}
  896. \def\underleftarrow@#1#2{\vtop{\ialign{$##$\cr
  897.  \hfil#1#2\hfil\cr\noalign{\nointerlineskip}#1{\leftarrow}\mkern-6mu
  898.  \cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  899.  \mkern-6mu{-}\cr}}}
  900. \def\underleftrightarrow{\mathpalette\underleftrightarrow@}
  901. \def\underleftrightarrow@#1#2{\vtop{\ialign{$##$\cr
  902.  \hfil#1#2\hfil\cr\noalign{\nointerlineskip}#1{\leftarrow}\mkern-6mu
  903.  \cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  904.  \mkern-6mu{\to}\cr}}}
  905. \newif\ifmath@
  906. {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`?=`h
  907.  \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2%
  908.  \ifx 9#3\ifx 0#4\ifx ?#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}}
  909. \newif\ifmathch@
  910. {\uccode`7=`c \uccode`8=`h \uccode`9=`\"
  911.  \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false
  912.   \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}}
  913. \newcount\classnum@
  914. \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
  915.  \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
  916.  \gdef\thedots@{\dotsb@}\fi}
  917. \newif\ifmathbin@
  918. {\uccode`4=`b \uccode`5=`i \uccode`6=`n
  919.  \uppercase{\gdef\mathbin@#1#2#3{%
  920.   \def\next@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}%
  921.  \global\mathbin@false\def\next##1\mathbin@{}%
  922.  \ifx 4#1\ifx 5#2\ifx 6#3\def\next{\futurelet\next\next@}\fi\fi\fi\next}}}
  923. \newif\ifmathrel@
  924. {\uccode`4=`r \uccode`5=`e \uccode`6=`l
  925.  \uppercase{\gdef\mathrel@#1#2#3{%
  926.   \def\next@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}%
  927.  \global\mathrel@false\def\next##1\mathrel@{}%
  928.  \ifx 4#1\ifx 5#2\ifx 6#3\def\next{\futurelet\next\next@}\fi\fi\fi\next}}}
  929. \newif\ifmacro@
  930. {\uccode`5=`m \uccode`6=`a \uccode`7=`c
  931.  \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false
  932.   \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true
  933.   \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
  934. \def\macro@@#1->#2\macro@@{#2}
  935. \newif\ifDOTS@
  936. \newcount\DOTSCASE@
  937. {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
  938.  \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\def\next##1\DOTS@{}%
  939.   \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next\DOTS@@\fi\fi\fi\fi\fi
  940.   \next}}}
  941. \let\DOTSX\relax
  942. {\uccode`3=`B \uccode`4=`I \uccode`5=`X
  943.  \uppercase{\gdef\DOTS@@#1{%
  944.   \def\next{\futurelet\next\next@}%
  945.   \def\next@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}%
  946.   \ifx 3#1\global\DOTSCASE@\z@\else
  947.   \ifx 4#1\global\DOTSCASE@\@ne\else
  948.   \ifx 5#1\global\DOTSCASE@\tw@\else\def\next##1\DOTS@{}%
  949.   \fi\fi\fi\next}}}
  950. \newif\ifnot@
  951. {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
  952.  \uppercase{\gdef\not@#1#2#3#4{%
  953.   \def\next@##1\not@{\ifx\space@\next\global\not@true\fi}%
  954.  \global\not@false\def\next##1\not@{}%
  955.  \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\def\next{\futurelet\next\next@}\fi\fi\fi\fi
  956.  \next}}}
  957. \newif\ifkeybin@
  958. \def\keybin@{\keybin@true
  959.  \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else
  960.  \ifx\next*\else\ifx\next:\else\keybin@false\fi\fi\fi\fi\fi\fi\fi}
  961. \def\dots{\relax\ifmmode\let\next\mdots@\else\let\next\tdots@\fi\next}
  962. \def\tdots@{\unskip\relaxnext@
  963.  \def\next@{$\mathinner{\ldotp\ldotp\ldotp}\,
  964.    \ifx\next,$\else\ifx\next.\,$\else\ifx\next;\,$\else\ifx\next:\,$\else
  965.    \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}%
  966.  \ \futurelet\next\next@}
  967. \def\mdots@{\futurelet\next\mdots@@}
  968. \def\mdots@@{\gdef\thedots@{\dotso@}%
  969.  \ifx,\next\gdef\thedots@{\dotsc}\else
  970.  \ifx\not\next\gdef\thedots@{\dotsb@}\else
  971.   \keybin@
  972.  \ifkeybin@\gdef\thedots@{\dotsb@}\else
  973.   \xdef\meaning@{\meaning\next.........}\xdef\meaning@@{\meaning@}%
  974.   \expandafter\math@\meaning@\math@
  975.  \ifmath@
  976.   \expandafter\mathch@\meaning@\mathch@\ifmathch@
  977.   \expandafter\getmathch@\meaning@\getmathch@\fi\else
  978.   \expandafter\macro@\meaning@@\macro@
  979.  \ifmacro@\expandafter\not@\meaning@\not@
  980.  \ifnot@\gdef\thedots@{\dotsb@}\else
  981.   \expandafter\DOTS@\meaning@\DOTS@
  982.  \ifDOTS@
  983.    \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
  984.    \or\gdef\thedots@{\dotsi}\else\fi\else
  985.   \expandafter\math@\meaning@\math@
  986.  \ifmath@\expandafter\mathbin@\meaning@\mathbin@
  987.  \ifmathbin@\gdef\thedots@{\dotsb@}\else
  988.   \expandafter\mathrel@\meaning@\mathrel@
  989.  \ifmathrel@\gdef\thedots@{\dotsb@}%
  990.   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  991.   \thedots@}
  992. \def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}}
  993. \def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}}
  994. \def\dotsi{\!\plaincdots@}
  995. \newif\ifextra@
  996. \newif\ifrightdelim@
  997. \def\rightdelim@{\global\rightdelim@true
  998.  \ifx\next)\else
  999.  \ifx\next]\else
  1000.  \ifx\next\rbrack\else
  1001.  \ifx\next\}\else
  1002.  \ifx\next\rbrace\else
  1003.  \ifx\next\rangle\else
  1004.  \ifx\next\rceil\else
  1005.  \ifx\next\rfloor\else
  1006.  \ifx\next\rgroup\else
  1007.  \ifx\next\rmoustache\else
  1008.  \ifx\next\right\else
  1009.  \ifx\next\bigr\else
  1010.  \ifx\next\biggr\else
  1011.  \ifx\next\Bigr\else
  1012.  \ifx\next\Biggr\else\global\rightdelim@false
  1013.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
  1014. \def\extra@{\global\extra@false\rightdelim@
  1015.  \ifrightdelim@\global\extra@true\else
  1016.  \ifx\next$\global\extra@true\else
  1017.  \xdef\meaning@{\meaning\next.........}%
  1018.  \expandafter\macro@\meaning@\macro@
  1019.  \ifmacro@\expandafter\DOTS@\meaning@\DOTS@
  1020.  \ifDOTS@
  1021.  \ifnum\DOTSCASE@=\tw@\global\extra@true\fi\fi\fi\fi\fi}
  1022. \def\extrap@#1{%
  1023.  \ifx\next,\def\next{#1\,}\else
  1024.  \ifx\next;\def\next{#1\,}\else
  1025.  \ifx\next.\def\next{#1\,}\else\extra@
  1026.  \ifextra@\def\next{#1\,}\else
  1027.  \let\next#1\fi\fi\fi\fi\next}
  1028. \def\ldots{\relaxnext@
  1029.  \def\next@{\extrap@\plainldots@}%
  1030.  \futurelet\next\next@}
  1031. \def\cdots{\relaxnext@
  1032.  \def\next@{\extrap@\plaincdots@}%
  1033.  \futurelet\next\next@}
  1034. \let\dotsb@\plaincdots@
  1035. \let\dotsb\cdots
  1036. \def\dotso@{%
  1037.  \def\next@{\extra@\plainldots@\ifextra@\,\fi}%
  1038.  \futurelet\next\next@}
  1039. \def\dotso{\relaxnext@
  1040.  \def\next@{\extrap@\plainldots@}%
  1041.  \futurelet\next\next@}
  1042. \def\dotsc{\relaxnext@
  1043.  \def\next@{%
  1044.   \ifx\next;\plainldots@\,\else
  1045.   \ifx\next.\plainldots@\,\else\extra@\plainldots@
  1046.   \ifextra@\,\fi\fi\fi}%
  1047.  \futurelet\next\next@}
  1048. \def\cdot{\relax\mathchar"2201 }
  1049. \let\dotsm\dotsb
  1050. \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
  1051. \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
  1052. \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
  1053. \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
  1054. \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
  1055. \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
  1056. \def\mapsto{\DOTSB\mapstochar\rightarrow}
  1057. \def\longmapsto{\DOTSB\mapstochar\longrightarrow}
  1058. \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
  1059. \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
  1060. \def\doteq{\DOTSB\buildrel\textstyle.\over=}
  1061. \def\iff{\DOTSB\;\Longleftrightarrow\;}
  1062. \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  1063.  \hbox{\tenrm...}\vss}}}}
  1064. \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  1065.  \hbox{\tenrm....}\vss}}}}
  1066. \def\sphat{^{\mathchoice{}{}{\,\,\botsmash{\hbox{\lower 4\ex@\hbox
  1067.  {$\widehat{\null}$}}}}{\,\botsmash{\hbox{\lower3\ex@\hbox
  1068.  {$\hat{\null}$}}}}}}
  1069. \def\spcheck{^\vee}
  1070. \def\sptilde{^\sim}
  1071. \def\spacute{^{\!\botsmash{\hbox{\lower\@ne ex\hbox{\'{}}}}}}
  1072. \def\spgrave{^{\mathchoice{}{}{}{\!}%
  1073.  \botsmash{\hbox{\lower\@ne ex\hbox{\`{}}}}}}
  1074. \def\spdot{^{\hbox{\raise\ex@\hbox{\tenrm.}}}}
  1075. \def\spddot{^{\hbox{\raise\ex@\hbox{\tenrm..}}}}
  1076. \def\spdddot{^{\hbox{\raise\ex@\hbox{\tenrm...}}}}
  1077. \def\spddddot{^{\hbox{\raise\ex@\hbox{\tenrm....}}}}
  1078. \def\spbreve{^{\!\botsmash{\hbox{\lower4\ex@\hbox{\u{}}}}}}
  1079. \def\spbar{^-}
  1080. \def\spvec{^\rightarrow}
  1081. \def\textfont@#1#2{\def#1{\relax\ifmmode
  1082.  \Err@{Use \string#1\space only in text}\else#2\fi}}
  1083. \textfont@\rm\tenrm
  1084. \textfont@\it\tenit
  1085. \textfont@\sl\tensl
  1086. \textfont@\bf\tenbf
  1087. \textfont@\smc\tensmc
  1088. \def\oldnos#1{\relax\ifmmode{\mathcode`\,="013B \fam\@ne#1}\else
  1089.   \leavevmode\hbox{$\mathcode`\,="013B \fam\@ne#1$}\fi}
  1090. \def\text{\relaxnext@\ifmmode\let\next\text@\else\let\next\text@@\fi\next}
  1091. \def\text@@#1{\leavevmode\hbox{#1}}
  1092. \def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
  1093. \def\dag{{\mathhexbox@279}}
  1094. \def\ddag{{\mathhexbox@27A}}
  1095. \def\S{{\mathhexbox@278}}
  1096. \def\P{{\mathhexbox@27B}}
  1097. \newcount\footmarkcount@
  1098. \footmarkcount@\z@
  1099. \newcount\footmarkcount@@
  1100. \def\text@#1{\footmarkcount@@\footmarkcount@\mathchoice
  1101.  {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}%
  1102.   \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
  1103.  {\hbox{\everymath{\textstyle}\def\textfonti{\the\textfont\@ne}%
  1104.   \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
  1105.  {\hbox{\everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}%
  1106.   \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}}
  1107.  {\hbox{\everymath{\scriptscriptstyle}\def\textfonti
  1108.   {\the\scriptscriptfont\@ne}%
  1109.   \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}%
  1110.   \advance\footmarkcount@-\footmarkcount@@
  1111.   \divide\footmarkcount@4 \global\advance\footmarkcount@\footmarkcount@@}
  1112. \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it}
  1113. \def\rmfam{0}
  1114. \def\textdef@#1#2{%
  1115.  \def\next{\csname\expandafter\eat@\string#2fam\endcsname}%
  1116.  \if S#1\edef#2{\the\scriptfont\next\relax}%
  1117.  \else\if s#1\edef#2{\the\scriptscriptfont\next\relax}%
  1118.  \else\edef#2{\the\textfont\next\relax}\fi\fi}
  1119. \scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit
  1120. \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
  1121. \newif\iftopfolded@
  1122. \newif\ifbotfolded@
  1123. \def\topfoldedtext{\topfolded@true\botfolded@false\foldedtext@}
  1124. \def\botfoldedtext{\botfolded@true\topfolded@false\foldedtext@}
  1125. \def\foldedtext{\topfolded@false\botfolded@false\foldedtext@}
  1126. \Invalid@\foldedwidth
  1127. \def\foldedtext@{\relaxnext@
  1128.  \def\next@{\ifx\next\foldedwidth\let\next\nextii@\else
  1129.   \def\next{\nextii@\foldedwidth{.3\hsize}}\fi\next}%
  1130.  \def\nextii@\foldedwidth##1##2{\setbox\z@\vbox
  1131.   {\normalbaselines\hsize##1\relax
  1132.   \tolerance1600 \noindent\ignorespaces##2}\ifbotfolded@\box\z@\else
  1133.   \iftopfolded@\vtop{\unvbox\z@}\else\vcenter{\box\z@}\fi\fi}%
  1134.  \futurelet\next\next@}
  1135. \mathcode`\0="0030
  1136. \mathcode`\1="0031
  1137. \mathcode`\2="0032
  1138. \mathcode`\3="0033
  1139. \mathcode`\4="0034
  1140. \mathcode`\5="0035
  1141. \mathcode`\6="0036
  1142. \mathcode`\7="0037
  1143. \mathcode`\8="0038
  1144. \mathcode`\9="0039
  1145. \def\Cal{\relaxnext@\ifmmode\let\next\Cal@\else
  1146.  \def\next{\Err@{Use \string\Cal\space only in math mode}}\fi\next}
  1147. \def\Cal@#1{{\Cal@@{#1}}}
  1148. \def\Cal@@#1{\noaccents@\fam\tw@#1}
  1149. \def\bold{\relaxnext@\ifmmode\let\next\bold@\else
  1150.  \def\next{\Err@{Use \string\bold\space only in math mode}}\fi\next}
  1151. \def\bold@#1{{\bold@@{#1}}}
  1152. \def\bold@@#1{\fam\bffam#1}
  1153. \def\slanted{\relaxnext@\ifmmode\let\next\slanted@\else
  1154.  \def\next{\Err@{Use \string\slanted\space only in math mode}}\fi\next}
  1155. \def\slanted@#1{{\slanted@@{#1}}}
  1156. \def\slanted@@#1{\fam\slfam#1}
  1157. \def\roman{\relaxnext@\ifmmode\let\next\roman@\else
  1158.  \def\next{\Err@{Use \string\roman\space only in math mode}}\fi\next}
  1159. \def\roman@#1{{\roman@@{#1}}}
  1160. \def\roman@@#1{\fam\rmfam#1}
  1161. \def\italic{\relaxnext@\ifmmode\let\next\italic@\else
  1162.  \def\next{\Err@{Use \string\italic\space only in math mode}}\fi\next}
  1163. \def\italic@#1{{\italic@@{#1}}}
  1164. \def\italic@@#1{\fam\itfam#1}
  1165. \mathchardef\Gamma="0000
  1166. \mathchardef\Delta="0001
  1167. \mathchardef\Theta="0002
  1168. \mathchardef\Lambda="0003
  1169. \mathchardef\Xi="0004
  1170. \mathchardef\Pi="0005
  1171. \mathchardef\Sigma="0006
  1172. \mathchardef\Upsilon="0007
  1173. \mathchardef\Phi="0008
  1174. \mathchardef\Psi="0009
  1175. \mathchardef\Omega="000A
  1176. \mathchardef\varGamma="0100
  1177. \mathchardef\varDelta="0101
  1178. \mathchardef\varTheta="0102
  1179. \mathchardef\varLambda="0103
  1180. \mathchardef\varXi="0104
  1181. \mathchardef\varPi="0105
  1182. \mathchardef\varSigma="0106
  1183. \mathchardef\varUpsilon="0107
  1184. \mathchardef\varPhi="0108
  1185. \mathchardef\varPsi="0109
  1186. \mathchardef\varOmega="010A
  1187. \def\hexnumber@#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
  1188.  A\or B\or C\or D\or E\or F\fi}
  1189. \edef\bffam@{\hexnumber@\bffam}
  1190. \mathchardef\boldGamma="0\bffam@00
  1191. \mathchardef\boldDelta="0\bffam@01
  1192. \mathchardef\boldTheta="0\bffam@02
  1193. \mathchardef\boldLambda="0\bffam@03
  1194. \mathchardef\boldXi="0\bffam@04
  1195. \mathchardef\boldPi="0\bffam@05
  1196. \mathchardef\boldSigma="0\bffam@06
  1197. \mathchardef\boldUpsilon="0\bffam@07
  1198. \mathchardef\boldPhi="0\bffam@08
  1199. \mathchardef\boldPsi="0\bffam@09
  1200. \mathchardef\boldOmega="0\bffam@0A
  1201. %  The following 14 lines establish the use of the two "extra" math symbol
  1202. %  fonts.  To use these fonts, remove % from beginning of these lines.
  1203. %\font\tenmsx=msxm10
  1204. %\font\sevenmsx=msxm7
  1205. %\font\fivemsx=msxm5
  1206. %\font\tenmsy=msym10
  1207. %\font\sevenmsy=msym7
  1208. %\font\fivemsy=msym5
  1209. \newfam\msxfam
  1210. \newfam\msyfam
  1211. %\textfont\msxfam=\tenmsx
  1212. %\scriptfont\msxfam=\sevenmsx
  1213. %\scriptscriptfont\msxfam=\fivemsx
  1214. %\textfont\msyfam=\tenmsy
  1215. %\scriptfont\msyfam=\sevenmsy
  1216. %\scriptscriptfont\msyfam=\fivemsy
  1217. %  The following 13 lines establish the use of the Euler Fraktur font.
  1218. %  To use this font, remove % from beginning of these lines.
  1219. %\font\teneuf=eufm10
  1220. %\font\seveneuf=eufm7
  1221. %\font\fiveeuf=eufm5
  1222. %\newfam\euffam
  1223. %\textfont\euffam=\teneuf
  1224. %\scriptfont\euffam=\seveneuf
  1225. %\scriptscriptfont\euffam=\fiveeuf
  1226. %\def\frak{\relaxnext@\ifmmode\let\next\frak@\else
  1227. % \def\next{\Err@{Use \string\frak\space only in math mode}}\fi\next}
  1228. %\def\goth{\relaxnext@\ifmmode\let\next\frak@\else
  1229. % \def\next{\Err@{Use \string\goth\space only in math mode}}\fi\next}
  1230. %\def\frak@#1{{\frak@@{#1}}}
  1231. %\def\frak@@#1{\noaccents@\fam\euffam#1}
  1232. %  End definition of Euler Fraktur font.
  1233. \edef\msx@{\hexnumber@\msxfam}
  1234. \edef\msy@{\hexnumber@\msyfam}
  1235. \mathchardef\boxdot="2\msx@00
  1236. \mathchardef\boxplus="2\msx@01
  1237. \mathchardef\boxtimes="2\msx@02
  1238. \mathchardef\square="0\msx@03
  1239. \mathchardef\blacksquare="0\msx@04
  1240. \mathchardef\centerdot="2\msx@05
  1241. \mathchardef\lozenge="0\msx@06
  1242. \mathchardef\blacklozenge="0\msx@07
  1243. \mathchardef\circlearrowright="3\msx@08
  1244. \mathchardef\circlearrowleft="3\msx@09
  1245. %\mathchardef\rightleftharpoons="3\msx@0A
  1246. \mathchardef\leftrightharpoons="3\msx@0B
  1247. \mathchardef\boxminus="2\msx@0C
  1248. \mathchardef\Vdash="3\msx@0D
  1249. \mathchardef\Vvdash="3\msx@0E
  1250. \mathchardef\vDash="3\msx@0F
  1251. \mathchardef\twoheadrightarrow="3\msx@10
  1252. \mathchardef\twoheadleftarrow="3\msx@11
  1253. \mathchardef\leftleftarrows="3\msx@12
  1254. \mathchardef\rightrightarrows="3\msx@13
  1255. \mathchardef\upuparrows="3\msx@14
  1256. \mathchardef\downdownarrows="3\msx@15
  1257. \mathchardef\upharpoonright="3\msx@16
  1258. \let\restriction\upharpoonright
  1259. \mathchardef\downharpoonright="3\msx@17
  1260. \mathchardef\upharpoonleft="3\msx@18
  1261. \mathchardef\downharpoonleft="3\msx@19
  1262. \mathchardef\rightarrowtail="3\msx@1A
  1263. \mathchardef\leftarrowtail="3\msx@1B
  1264. \mathchardef\leftrightarrows="3\msx@1C
  1265. \mathchardef\rightleftarrows="3\msx@1D
  1266. \mathchardef\Lsh="3\msx@1E
  1267. \mathchardef\Rsh="3\msx@1F
  1268. \mathchardef\rightsquigarrow="3\msx@20
  1269. \mathchardef\leftrightsquigarrow="3\msx@21
  1270. \mathchardef\looparrowleft="3\msx@22
  1271. \mathchardef\looparrowright="3\msx@23
  1272. \mathchardef\circeq="3\msx@24
  1273. \mathchardef\succsim="3\msx@25
  1274. \mathchardef\gtrsim="3\msx@26
  1275. \mathchardef\gtrapprox="3\msx@27
  1276. \mathchardef\multimap="3\msx@28
  1277. \mathchardef\therefore="3\msx@29
  1278. \mathchardef\because="3\msx@2A
  1279. \mathchardef\doteqdot="3\msx@2B
  1280. \let\Doteq\doteqdot
  1281. \mathchardef\triangleq="3\msx@2C
  1282. \mathchardef\precsim="3\msx@2D
  1283. \mathchardef\lesssim="3\msx@2E
  1284. \mathchardef\lessapprox="3\msx@2F
  1285. \mathchardef\eqslantless="3\msx@30
  1286. \mathchardef\eqslantgtr="3\msx@31
  1287. \mathchardef\curlyeqprec="3\msx@32
  1288. \mathchardef\curlyeqsucc="3\msx@33
  1289. \mathchardef\preccurlyeq="3\msx@34
  1290. \mathchardef\leqq="3\msx@35
  1291. \mathchardef\leqslant="3\msx@36
  1292. \mathchardef\lessgtr="3\msx@37
  1293. \mathchardef\backprime="0\msx@38
  1294. \mathchardef\risingdotseq="3\msx@3A
  1295. \mathchardef\fallingdotseq="3\msx@3B
  1296. \mathchardef\succcurlyeq="3\msx@3C
  1297. \mathchardef\geqq="3\msx@3D
  1298. \mathchardef\geqslant="3\msx@3E
  1299. \mathchardef\gtrless="3\msx@3F
  1300. \mathchardef\sqsubset="3\msx@40
  1301. \mathchardef\sqsupset="3\msx@41
  1302. \mathchardef\vartriangleright="3\msx@42
  1303. \mathchardef\vartriangleleft ="3\msx@43
  1304. \mathchardef\trianglerighteq="3\msx@44
  1305. \mathchardef\trianglelefteq="3\msx@45
  1306. \mathchardef\bigstar="0\msx@46
  1307. \mathchardef\between="3\msx@47
  1308. \mathchardef\blacktriangledown="0\msx@48
  1309. \mathchardef\blacktriangleright="3\msx@49
  1310. \mathchardef\blacktriangleleft="3\msx@4A
  1311. \mathchardef\vartriangle="0\msx@4D
  1312. \mathchardef\blacktriangle="0\msx@4E
  1313. \mathchardef\triangledown="0\msx@4F
  1314. \mathchardef\eqcirc="3\msx@50
  1315. \mathchardef\lesseqgtr="3\msx@51
  1316. \mathchardef\gtreqless="3\msx@52
  1317. \mathchardef\lesseqqgtr="3\msx@53
  1318. \mathchardef\gtreqqless="3\msx@54
  1319. \mathchardef\Rrightarrow="3\msx@56
  1320. \mathchardef\Lleftarrow="3\msx@57
  1321. \mathchardef\veebar="2\msx@59
  1322. \mathchardef\barwedge="2\msx@5A
  1323. \mathchardef\doublebarwedge="2\msx@5B
  1324. %\mathchardef\angle="0\msx@5C
  1325. \mathchardef\measuredangle="0\msx@5D
  1326. \mathchardef\sphericalangle="0\msx@5E
  1327. \mathchardef\varpropto="3\msx@5F
  1328. \mathchardef\smallsmile="3\msx@60
  1329. \mathchardef\smallfrown="3\msx@61
  1330. \mathchardef\Subset="3\msx@62
  1331. \mathchardef\Supset="3\msx@63
  1332. \mathchardef\Cup="2\msx@64
  1333. \let\doublecup\Cup
  1334. \mathchardef\Cap="2\msx@65
  1335. \let\doublecap\Cap
  1336. \mathchardef\curlywedge="2\msx@66
  1337. \mathchardef\curlyvee="2\msx@67
  1338. \mathchardef\leftthreetimes="2\msx@68
  1339. \mathchardef\rightthreetimes="2\msx@69
  1340. \mathchardef\subseteqq="3\msx@6A
  1341. \mathchardef\supseteqq="3\msx@6B
  1342. \mathchardef\bumpeq="3\msx@6C
  1343. \mathchardef\Bumpeq="3\msx@6D
  1344. \mathchardef\lll="3\msx@6E
  1345. \let\llless\lll
  1346. \mathchardef\ggg="3\msx@6F
  1347. \let\gggtr\ggg
  1348. \mathchardef\circledS="0\msx@73
  1349. \mathchardef\pitchfork="3\msx@74
  1350. \mathchardef\dotplus="2\msx@75
  1351. \mathchardef\backsim="3\msx@76
  1352. \mathchardef\backsimeq="3\msx@77
  1353. \mathchardef\complement="0\msx@7B
  1354. \mathchardef\intercal="2\msx@7C
  1355. \mathchardef\circledcirc="2\msx@7D
  1356. \mathchardef\circledast="2\msx@7E
  1357. \mathchardef\circleddash="2\msx@7F
  1358. \def\ulcorner{\delimiter"4\msx@70\msx@70 }
  1359. \def\urcorner{\delimiter"5\msx@71\msx@71 }
  1360. \def\llcorner{\delimiter"4\msx@78\msx@78 }
  1361. \def\lrcorner{\delimiter"5\msx@79\msx@79 }
  1362. \def\yen{{\mathhexbox@\msx@55 }}
  1363. \def\checkmark{{\mathhexbox@\msx@58 }}
  1364. \def\circledR{{\mathhexbox@\msx@72 }}
  1365. \def\maltese{{\mathhexbox@\msx@7A }}
  1366. \mathchardef\lvertneqq="3\msy@00
  1367. \mathchardef\gvertneqq="3\msy@01
  1368. \mathchardef\nleq="3\msy@02
  1369. \mathchardef\ngeq="3\msy@03
  1370. \mathchardef\nless="3\msy@04
  1371. \mathchardef\ngtr="3\msy@05
  1372. \mathchardef\nprec="3\msy@06
  1373. \mathchardef\nsucc="3\msy@07
  1374. \mathchardef\lneqq="3\msy@08
  1375. \mathchardef\gneqq="3\msy@09
  1376. \mathchardef\nleqslant="3\msy@0A
  1377. \mathchardef\ngeqslant="3\msy@0B
  1378. \mathchardef\lneq="3\msy@0C
  1379. \mathchardef\gneq="3\msy@0D
  1380. \mathchardef\npreceq="3\msy@0E
  1381. \mathchardef\nsucceq="3\msy@0F
  1382. \mathchardef\precnsim="3\msy@10
  1383. \mathchardef\succnsim="3\msy@11
  1384. \mathchardef\lnsim="3\msy@12
  1385. \mathchardef\gnsim="3\msy@13
  1386. \mathchardef\nleqq="3\msy@14
  1387. \mathchardef\ngeqq="3\msy@15
  1388. \mathchardef\precneqq="3\msy@16
  1389. \mathchardef\succneqq="3\msy@17
  1390. \mathchardef\precnapprox="3\msy@18
  1391. \mathchardef\succnapprox="3\msy@19
  1392. \mathchardef\lnapprox="3\msy@1A
  1393. \mathchardef\gnapprox="3\msy@1B
  1394. \mathchardef\nsim="3\msy@1C
  1395. %\mathchardef\napprox="3\msy@1D
  1396. \mathchardef\ncong="3\msy@1D
  1397. \def\napprox{\not\approx}
  1398. \mathchardef\varsubsetneq="3\msy@20
  1399. \mathchardef\varsupsetneq="3\msy@21
  1400. \mathchardef\nsubseteqq="3\msy@22
  1401. \mathchardef\nsupseteqq="3\msy@23
  1402. \mathchardef\subsetneqq="3\msy@24
  1403. \mathchardef\supsetneqq="3\msy@25
  1404. \mathchardef\varsubsetneqq="3\msy@26
  1405. \mathchardef\varsupsetneqq="3\msy@27
  1406. \mathchardef\subsetneq="3\msy@28
  1407. \mathchardef\supsetneq="3\msy@29
  1408. \mathchardef\nsubseteq="3\msy@2A
  1409. \mathchardef\nsupseteq="3\msy@2B
  1410. \mathchardef\nparallel="3\msy@2C
  1411. \mathchardef\nmid="3\msy@2D
  1412. \mathchardef\nshortmid="3\msy@2E
  1413. \mathchardef\nshortparallel="3\msy@2F
  1414. \mathchardef\nvdash="3\msy@30
  1415. \mathchardef\nVdash="3\msy@31
  1416. \mathchardef\nvDash="3\msy@32
  1417. \mathchardef\nVDash="3\msy@33
  1418. \mathchardef\ntrianglerighteq="3\msy@34
  1419. \mathchardef\ntrianglelefteq="3\msy@35
  1420. \mathchardef\ntriangleleft="3\msy@36
  1421. \mathchardef\ntriangleright="3\msy@37
  1422. \mathchardef\nleftarrow="3\msy@38
  1423. \mathchardef\nrightarrow="3\msy@39
  1424. \mathchardef\nLeftarrow="3\msy@3A
  1425. \mathchardef\nRightarrow="3\msy@3B
  1426. \mathchardef\nLeftrightarrow="3\msy@3C
  1427. \mathchardef\nleftrightarrow="3\msy@3D
  1428. \mathchardef\divideontimes="2\msy@3E
  1429. \mathchardef\varnothing="0\msy@3F
  1430. \mathchardef\nexists="0\msy@40
  1431. \mathchardef\mho="0\msy@66
  1432. \mathchardef\eth="0\msy@67
  1433. \mathchardef\eqsim="3\msy@68
  1434. \mathchardef\beth="0\msy@69
  1435. \mathchardef\gimel="0\msy@6A
  1436. \mathchardef\daleth="0\msy@6B
  1437. \mathchardef\lessdot="3\msy@6C
  1438. \mathchardef\gtrdot="3\msy@6D
  1439. \mathchardef\ltimes="2\msy@6E
  1440. \mathchardef\rtimes="2\msy@6F
  1441. \mathchardef\shortmid="3\msy@70
  1442. \mathchardef\shortparallel="3\msy@71
  1443. \mathchardef\smallsetminus="2\msy@72
  1444. \mathchardef\thicksim="3\msy@73
  1445. \mathchardef\thickapprox="3\msy@74
  1446. \mathchardef\approxeq="3\msy@75
  1447. \mathchardef\succapprox="3\msy@76
  1448. \mathchardef\precapprox="3\msy@77
  1449. \mathchardef\curvearrowleft="3\msy@78
  1450. \mathchardef\curvearrowright="3\msy@79
  1451. \mathchardef\digamma="0\msy@7A
  1452. \mathchardef\varkappa="0\msy@7B
  1453. \mathchardef\hslash="0\msy@7D
  1454. %\mathchardef\hbar="0\msy@7E
  1455. \mathchardef\backepsilon="3\msy@7F
  1456. \def\Bbb{\relaxnext@\ifmmode\let\next\Bbb@\else
  1457.  \def\next{\Err@{Use \string\Bbb\space only in math mode}}\fi\next}
  1458. \def\Bbb@#1{{\Bbb@@{#1}}}
  1459. \def\Bbb@@#1{\noaccents@\fam\msyfam#1}
  1460. \newcount\skewcharcount@
  1461. \newcount\familycount@
  1462. \def\theskewchar@{\global\familycount@\@ne
  1463.  \global\skewcharcount@\the\skewchar\textfont\@ne
  1464.  \ifnum\fam>\m@ne\ifnum\fam<17
  1465.  \global\familycount@\the\fam\relax
  1466.  \global\skewcharcount@\the\skewchar\textfont\the\fam\relax\fi\fi
  1467.  \ifnum\skewcharcount@>\m@ne
  1468.  \ifnum\skewcharcount@<128
  1469.  \global\multiply\familycount@256
  1470.  \global\advance\skewcharcount@\familycount@
  1471.  \global\advance\skewcharcount@28672
  1472.  \mathchar\skewcharcount@\else
  1473.  \global\skewcharcount@\m@ne\fi\else
  1474.  \global\skewcharcount@\m@ne\fi}
  1475. \newcount\pointcount@
  1476. \def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
  1477. \def\accentfam@{7}
  1478. \def\noaccents@{\def\accentfam@{0}}
  1479. \def\makeacc@#1#2{\def#1{\mathaccent"\accentfam@#2 }}
  1480. \def\Makeacc@#1#2{\relaxnext@\def#1{\relax\ifmmode\def\next{\mathaccent@
  1481.  {"\accentfam@#2 }}\else\def\next{\Err@{Use
  1482.  \string#1\space only in math mode}}\fi\next}}
  1483. \makeacc@\hat{05E}           \Makeacc@\Hat{05E}
  1484. \makeacc@\check{014}         \Makeacc@\Check{014}
  1485. \makeacc@\tilde{07E}         \Makeacc@\Tilde{07E}
  1486. \makeacc@\acute{013}         \Makeacc@\Acute{013}
  1487. \makeacc@\grave{012}         \Makeacc@\Grave{012}
  1488. \makeacc@\dot{05F}           \Makeacc@\Dot{05F}
  1489. \makeacc@\ddot{07F}          \Makeacc@\Ddot{07F}
  1490. \makeacc@\breve{015}         \Makeacc@\Breve{015}
  1491. \makeacc@\bar{016}           \Makeacc@\Bar{016}
  1492. \def\vec{\mathaccent"017E }
  1493. \def\Vec{\relaxnext@\ifmmode\def\next{\mathaccent@{"017E }}\else
  1494.  \def\next{\Err@{Use \string\vec\space only in math mode}}\fi\next}
  1495. \newdimen\accentdimen@
  1496. \newcount\accentmu@
  1497. \def\unbracefonts@{\let\Cal@\Cal@@\let\rom@\rom@@\let\bold@\bold@@
  1498.  \let\slanted@\slanted@@}
  1499. \def\mathaccent@#1#2{\relaxnext@\ifnum\fam=\m@ne\xdef\thefam@{1}\else
  1500.  \xdef\thefam@{\the\fam}\fi
  1501.  \accentdimen@\z@
  1502.  \setbox\z@\hbox{\unbracefonts@$\fam\thefam@#2$}%
  1503.  \ifdim\accentdimen@=\z@\def\next{\mathaccent#1{#2}}%
  1504.  \setbox\@ne\hbox{\unbracefonts@$\fam\thefam@#2\theskewchar@$}%
  1505.  \setbox\tw@\hbox{$\ifnum\skewcharcount@=\m@ne\else
  1506.   \mathchar\skewcharcount@\fi$}%
  1507.  \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wd\z@
  1508.  \global\advance\accentdimen@-\wd\tw@
  1509.  \global\multiply\accentdimen@\tw@
  1510.  \dimentomu@\accentdimen@\accentmu@\global\advance\accentmu@\@ne\else
  1511.  \def\next{{\mathaccent#1{#2\mkern\accentmu@ mu}\mkern-\accentmu@ mu}{}}\fi
  1512.  \next}
  1513. \def\dimentomu@#1#2{\multiply#1 100
  1514.  \expandafter\getpoints@\the#1\getpoints@
  1515.  \multiply\pointcount@18
  1516.  \divide\pointcount@\@m
  1517.  \global#2\pointcount@}
  1518. \def\newbox@{\alloc@4\box\chardef\insc@unt}
  1519. \def\accentedsymbol#1#2{\expandafter\newbox@\csname\expandafter
  1520.  \eat@\string#1@box\endcsname
  1521.  \expandafter\setbox\csname\expandafter\eat@
  1522.  \string#1@box\endcsname\hbox{$#2$}\define
  1523.  #1{\expandafter\copy\csname\expandafter\eat@\string#1@box\endcsname{}}}
  1524. \def\sqrt#1{\radical"270370 {#1}}
  1525. \let\underline@\underline
  1526. \let\overline@\overline
  1527. \def\underline#1{\underline@{#1}}
  1528. \def\overline#1{\overline@{#1}}
  1529. \Invalid@\leftroot
  1530. \Invalid@\uproot
  1531. \newcount\uproot@
  1532. \newcount\leftroot@
  1533. \def\root{\relaxnext@
  1534.  \def\next@{\ifx\next\uproot\let\next\nextii@\else
  1535.   \ifx\next\leftroot\let\next\nextiii@\else
  1536.   \let\next\plainroot@\fi\fi\next}%
  1537.  \def\nextii@\uproot##1{\uproot@##1\relax\futurelet\next\nextiv@}%
  1538.  \def\nextiv@{\ifx\next\space@\def\next. {\futurelet\next\nextv@}\else
  1539.   \def\next.{\futurelet\next\nextv@}\fi\next.}%
  1540.  \def\nextv@{\ifx\next\leftroot\let\next\nextvi@\else
  1541.   \let\next\plainroot@\fi\next}%
  1542.  \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
  1543.  \def\nextiii@\leftroot##1{\leftroot@##1\relax\futurelet\next\nextvii@}%
  1544.  \def\nextvii@{\ifx\next\space@
  1545.   \def\next. {\futurelet\next\nextviii@}\else
  1546.   \def\next.{\futurelet\next\nextviii@}\fi\next.}%
  1547.  \def\nextviii@{\ifx\next\uproot\let\next\nextix@\else
  1548.   \let\next\plainroot@\fi\next}%
  1549.  \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
  1550. \bgroup\uproot@\z@\leftroot@\z@\futurelet\next\next@}
  1551. \def\plainroot@#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
  1552.  \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
  1553.  {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
  1554. \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}%
  1555.  \dimen@\ht\z@\advance\dimen@-\dp\z@
  1556.  \setbox1\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ by1.667\wd\@ne
  1557.  \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
  1558.  \mkern-10mu\mkern\leftroot@ mu\box\z@}
  1559. \def\boxed#1{\setbox\z@\hbox{$\displaystyle{#1}$}\hbox{\lower.4\ex@
  1560.  \hbox{\lower3\ex@\hbox{\lower\dp\z@\hbox{\vbox{\hrule height.4\ex@
  1561.  \hbox{\vrule width.4\ex@\hskip3\ex@\vbox{\vskip3\ex@\box\z@\vskip3\ex@}%
  1562.  \hskip3\ex@\vrule width.4\ex@}\hrule height.4\ex@}}}}}}
  1563. \let\ampersand@\relax
  1564. \newdimen\bigaw@
  1565. \newdimen\minaw@
  1566. \minaw@11.11128\ex@
  1567. \newdimen\minCDaw@
  1568. \minCDaw@2.5pc
  1569. \newif\ifCD@
  1570. \def\minCDarrowwidth#1{\relax\ifmmode\ifinner\onlydmatherr@\minCDarrowwidth
  1571.  \else\minCDaw@#1\relax\fi\else\onlydmatherr@\minCDarrowwidth\fi}
  1572. \def\CD{\bgroup\vspace@\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi
  1573.  \CD@true\vcenter\bgroup\Let@\tabskip\z@skip\baselineskip20\ex@
  1574.  \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup
  1575.  &\hfill$\m@th##$\hfill\cr}
  1576. \def\endCD{\cr\egroup\egroup\egroup}
  1577. \atdef@>#1>#2>{\ampersand@\setbox\z@\hbox{$\ssize
  1578.  \;{#1}\;\;$}\setbox\@ne\hbox{$\ssize\;{#2}\;\;$}\setbox\tw@
  1579.  \hbox{$#2$}\ifCD@
  1580.  \global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi
  1581.  \ifdim\wd\z@>\bigaw@\global\bigaw@\wd\z@\fi
  1582.  \ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi
  1583.  \ifCD@\hskip.5em\fi
  1584.  \ifdim\wd\tw@>\z@
  1585.  \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill}}\limits^{#1}_{#2}}\else
  1586.  \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill}}\limits^{#1}}\fi
  1587.  \ifCD@\hskip.5em\fi\ampersand@}
  1588. \atdef@<#1<#2<{\ampersand@\setbox\z@\hbox{$\ssize
  1589.  \;\;{#1}\;$}\setbox\@ne\hbox{$\ssize\;\;{#2}\;$}\setbox\tw@
  1590.  \hbox{$#2$}\ifCD@
  1591.  \global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi
  1592.  \ifdim\wd\z@>\bigaw@\global\bigaw@\wd\z@\fi
  1593.  \ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi
  1594.  \ifCD@\hskip.5em\fi
  1595.  \ifdim\wd\tw@>\z@
  1596.  \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill}}\limits^{#1}_{#2}}\else
  1597.  \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill}}\limits^{#1}}\fi
  1598.  \ifCD@\hskip.5em\fi\ampersand@}
  1599. \atdef@ A#1A#2A{\llap{$\vcenter{\hbox
  1600.  {$\ssize#1$}}$}\Big\uparrow\rlap{$\vcenter{\hbox{$\ssize#2$}}$}&&}
  1601. \atdef@ V#1V#2V{\llap{$\vcenter{\hbox
  1602.  {$\ssize#1$}}$}\Big\downarrow\rlap{$\vcenter{\hbox{$\ssize#2$}}$}&&}
  1603. \atdef@={&\hskip.5em\mathrel
  1604.  {\vbox{\hrule width\minCDaw@\vskip3\ex@\hrule width
  1605.  \minCDaw@}}\hskip.5em&}
  1606. \atdef@|{\Big\Vert&&}
  1607. \atdef@@\vert{\Big\Vert&&}
  1608. \def\pretend#1\haswidth#2{\setbox\z@\hbox{$\scriptstyle{#2}$}\hbox
  1609.  to\wd\z@{\hfill$\scriptstyle{#1}$\hfill}}
  1610. \def\pmb{\relaxnext@\ifmmode\def\next{\mathpalette\pmb@}\else
  1611.  \let\next\pmb@@\fi\next}
  1612. \def\pmb@@#1{\leavevmode\setbox\z@\hbox{#1}\kern-.025em\copy\z@\kern-\wd\z@
  1613.  \kern-.05em\copy\z@\kern-\wd\z@\kern-.025em\raise.0433em\box\z@}
  1614. \def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
  1615.  \mathrel{#1}\else{#1}\fi\fi}
  1616. \newdimen\pmbraise@
  1617. \def\pmb@#1#2{\setbox\thr@@\hbox{$\m@th#1{#2}$}%
  1618.  \setbox4\hbox{$\m@th#1\mkern.7794mu$}\pmbraise@\wd4
  1619.  \divide\pmbraise@18
  1620.  \binrel@{#2}\binrel@@{\mkern-.45mu\copy\thr@@\kern-\wd\thr@@
  1621.  \mkern-.9mu\copy\thr@@\kern-\wd\thr@@\mkern-.45mu\raise\pmbraise@\box\thr@@}}
  1622. \def\documentstyle#1{\input #1.sty}
  1623. \font\dummyft@=dummy
  1624. \fontdimen1 \dummyft@=\z@
  1625. \fontdimen2 \dummyft@=\z@
  1626. \fontdimen3 \dummyft@=\z@
  1627. \fontdimen4 \dummyft@=\z@
  1628. \fontdimen5 \dummyft@=\z@
  1629. \fontdimen6 \dummyft@=\z@
  1630. \fontdimen7 \dummyft@=\z@
  1631. \fontdimen8 \dummyft@=\z@
  1632. \fontdimen9 \dummyft@=\z@
  1633. \fontdimen10 \dummyft@=\z@
  1634. \fontdimen11 \dummyft@=\z@
  1635. \fontdimen12 \dummyft@=\z@
  1636. \fontdimen13 \dummyft@=\z@
  1637. \fontdimen14 \dummyft@=\z@
  1638. \fontdimen15 \dummyft@=\z@
  1639. \fontdimen16 \dummyft@=\z@
  1640. \fontdimen17 \dummyft@=\z@
  1641. \fontdimen18 \dummyft@=\z@
  1642. \fontdimen19 \dummyft@=\z@
  1643. \fontdimen20 \dummyft@=\z@
  1644. \fontdimen21 \dummyft@=\z@
  1645. \fontdimen22 \dummyft@=\z@
  1646. \def\fontlist@{\\{\tenrm}\\{\sevenrm}\\{\fiverm}\\{\teni}\\{\seveni}%
  1647.  \\{\fivei}\\{\tensy}\\{\sevensy}\\{\fivesy}\\{\tenex}\\{\tenbf}\\{\sevenbf}%
  1648.  \\{\fivebf}\\{\tensl}\\{\tenit}%
  1649.  %\\{\tenmsx}\\{\sevenmsx}\\{\fivemsx}\\{\tenmsy}\\{\sevenmsy}\\{\fivemsy}%
  1650.  }
  1651. \def\font@#1=#2 {\rightappend@#1\to\fontlist@\font#1=#2 }
  1652. \def\dodummy@{{\def\\##1{\global\let##1\dummyft@}\fontlist@}}
  1653. \newif\ifsyntax@
  1654. \newif\ifgalleys@
  1655. \newcount\countxviii@
  1656. \def\newtoks@{\alloc@5\toks\toksdef\@cclvi}
  1657. \def\nopages@{\output={\setbox\z@\box255 \deadcycles\z@}\newtoks@\output}
  1658. \def\syntax{\syntax@true\dodummy@\countxviii@\count18
  1659.  \loop\ifnum\countxviii@>\z@\textfont\countxviii@=\dummyft@
  1660.  \scriptfont\countxviii@=\dummyft@\scriptscriptfont\countxviii@=\dummyft@
  1661.  \advance\countxviii@\m@ne\repeat
  1662.  \dummyft@\tracinglostchars\z@\nopages@\frenchspacing\hbadness\@M}
  1663. \def\galleys{\galleys@true\nopages@}
  1664. \def\S@{S } \def\G@{G } \def\P@{P }
  1665. \newif\ifbadans@
  1666. \def\printoptions{\immediate\write\sixt@@n{Do you want S(yntax check),
  1667.   G(alleys) or P(ages)?^^JType S, G or P, follow by <return>: }\loop
  1668.  \read\m@ne to\ans@
  1669.  \xdef\next{\def\noexpand\Ans@{\ans@}}%
  1670.  \uppercase\expandafter{\next}%
  1671.  \ifx\Ans@\S@\badans@false\syntax\else
  1672.  \ifx\Ans@\G@\badans@false\galleys\else
  1673.  \ifx\Ans@\P@\badans@false\else
  1674.  \badans@true\fi\fi\fi
  1675.  \ifbadans@\immediate\write\sixt@@n{Type S, G or P, follow by <return>: }%
  1676.  \repeat}
  1677. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  1678.  \ch@ck#1#4#2\allocationnumber=\count1#1
  1679.  \global#3#5=\allocationnumber
  1680.  \ifalloc@\wlog{\string#5=\string#2\the\allocationnumber}\fi}
  1681. \def\document{\def\alloclist@{\empty}\def\fontlist@{\empty}}
  1682. \let\enddocument\bye
  1683. \let\plainproclaim\proclaim
  1684. \let\plainfootnote\footnote
  1685. \let\proclaim\undefined
  1686. \let\footnote\undefined
  1687. \let\=\undefined
  1688. \let\>\undefined
  1689. \let\cal\undefined
  1690. \let\mit\undefined
  1691. \let\oldstyle\undefined
  1692. \catcode`\@=\active
  1693. \def\Fmtname{amstex}\def\Fmtversion{1.1c}
  1694.